Bạn đang xem bài viết Sự Khác Biệt Giữa Const Và Constexpr được cập nhật mới nhất trên website Channuoithuy.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.
Nhắc lại về const
Từ khóa const (constant – hằng) là từ khóa để chỉ định một biến hay đối tượng là hằng, tức là không thay đổi được giá trị, mọi hành động thay đổi giá trị của hằng đều được compiler báo lỗi. Mục đích của const để tăng ràng buộc khi 1 biến thay đổi sẽ gây ra các hiệu ứng phụ cho chương trình.
Ví dụ khi truyền tham số dạng tham chiếu đường dẫn file vào hàm lấy nội dung của file, mục đích của hàm này chỉ sử dụng nội dung từ đường dẫn để lấy được nội dung file, nếu không ràng buộc const có thể dẫn đến các sơ sót do vô ý thay đổi giá trị đường dẫn và có thể trong chương trình có 1 đoạn mã cần sử dụng lại giá trị này nhưng không còn đúng nữa.
const được dùng trong các trường hợp đối tượng là biến tham trị, biến tham chiếu và tham số của hàm.
int main() { const int x = 7; int y = 8; const int &A = y; int z = 9; int *const p = &x; return 0; } void printName(const char * ID) { }Bài viết không đi sâu vào phân tích const, nếu cần chi tiết hơn có thể xem bài Thao Tác Với Constant trong C++.
Khái niệm constexpr
constexpr được giới thiệu ở C++11 có chức năng yêu cầu trình biên dịch tính toán hàm hoặc biến tại thời điểm biên dịch. Các biến và hàm này được quy đổi thành 1 giá trị cố định khi biên dịch nên giảm được thời gian thực thi.
constexpr variable
Khi khai báo một biến constexpr và const cũng được hiểu là không thể thay đổi giá trị, nhưng khác là constexpr phải đủ điều kiện để tính toán được trong thời điểm biên dịch, còn const sẽ thuộc thời gian thực thi. Muốn sử dụng constexpr cần phải tuân theo những quy định sau:
Kiểu của biến được thể hiện phải là LiteralType.
Nó cần được khởi tạo ngay tại thời điểm định nghĩa biến.
constexpr int a = 2;constexpr function
Khi khai báo 1 hàm là constexpr function, hàm này phải thỏa các điều kiện:
Nó không phải là virtual function.
Kiểu trả về của hàm phải là LiteralType.
Các biến tham số của hàm phải là LiteralType.
constexpr int add(int a, int b) { return a + b; }constexpr và thời gian biên dịch
Điều quan trọng nhất của constexpr là biểu thức được tính tại thời gian biên dịch:
{ return a.size() + b.size(); }
Như đã làm với hàm add phía trên, chuyển hàm add_vectors_size về dạng constexpr:
{ return a.size() + b.size(); }
Tuy nhiên, cách làm này là không chính xác, vì tại thời điểm biên dịch, tham số truyền vào là 2 vector, trình biên dịch sẽ không biết kích thước của 2 vector đó, vậy nên hàm này không tính trước được.
Đối với một ví dụ khác:
{ return a.size() + b.size(); }
Hàm này lại có thể hoàn toàn thực hiện được, do tại thời điểm biên dịch, trình biên dịch biết được kích thước của hai mảng a và b.
Lời kết
Trong lịch sử phát triển của C++, những lập trình viên hỗ trợ xây dựng lên C++ ngày càng hoàn thiện hơn, cải tiến tốc độ biên dịch là yếu tố rất được quan tâm đến. Từ đó qua các thế hệ C++ tiêu biểu như C++98, C++11, C++14 và tiếp đến là C++17, xuất hiện nhiều hơn các từ khóa mới, khái niệm mới nhầm tối ưu hóa tốc độ và bộ nhớ song song với khả năng phát triển phần mềm tiện lợi, việc của lập trình viên là tiếp tục cập nhật những cải tiến này.
Sự Khác Nhau Giữa Var, Let Và Const Trong Javascript
Với việc ra mắt ES6, hai từ khóa khá quan trọng trong JavaScript cũng được giới thiệu là let và const. Trước khi ra đời ES6, cách duy nhất để khai báo một biến trong JavaScript là sử dụng var. Nhưng sự khác biệt giữa var, let và const là gì? Và khi nào chúng ta sử dụng cho phạm vi nào?
1. Var
Như bạn có thể biết, cách thức cũ để khai báo một biến trong JavaScript là sử dụng từ khóa var.
var name = "NhiTT"; console.log(name);Khi bạn log biến name trong console, đầu ra rõ ràng sẽ là NhiTT . Biến name hiện tại là biến có phạm vi global. Sẽ thú vị hơn khi chúng ta thêm một hàm.
function setup() { var name = "Benjamin"; } setup(); console.log(name);Có thể sử dụng các biến có phạm vi toàn cầu bên trong một hàm. Điều này có nghĩa là biến age có thể được sử dụng bên trong hàm setup. Điều này sẽ in ra “NhiTT 16 tủi” trong console.
var age = 16; function setup() { var name = "NhiTT"; console.log(name + age + " tủi"); } setup();Bạn chỉ có thể truy cập các biến có cùng phạm vi hoặc phạm vi cao hơn. Vì vậy, trong một chức năng, bạn có thể truy cập phạm vi toàn cầu. Nhưng, trên toàn cầu, bạn không thể truy cập vào một biến chỉ được tạo trong một hàm.
var age = 16; function setup() { var name = "Benjamin"; age = 15; } setup(); console.log(age);Nó trở nên khó khăn hơn khi var được sử dụng trong một vòng lặp for hoặc trong một câu lệnh if. Vòng lặp for hoặc lệnh if sẽ không tạo ra các biến của riêng chúng.
Điều này có nghĩa là biến có thể truy cập rộng rãi hơn vòng lặp hoặc câu lệnh mà chúng được tạo. Trong ví dụ bên dưới, biến i có phạm vi toàn cục. Điều này sẽ in ra 10 trong console.
for (var i = 1; i <= 10; i++) {2. Let
Let sử dụng phạm vi khối và không phạm vi từ vựng. Điều này có nghĩa là let không quan tâm đến toàn cầu hoặc cục bộ hoặc liệu bạn có ở trong một hàm hay không. Thay vào đó, let quan tâm đến khối bạn đang ở. Một khối về cơ bản là bất cứ thứ gì có dấu ngoặc nhọn. Đây có thể là một hàm, nhưng cũng là một vòng lặp for v hoặc một câu lệnh if.
let i = 5; for (let i = 1; i <= 10; i++) {Trong ví dụ trên, biến i không được cập nhật trong phạm vi toàn cầu; do đó đầu ra sẽ là 5.
Let hữu ích khi bạn muốn có một biến trong phạm vi của nó. Có thể truy cập các biến từ một khối cao hơn, giống như var có thể truy cập các biến từ phạm vi cao hơn.
3. Const
Const hoạt động gần giống như let. Tuy nhiên, sự khác biệt duy nhất là một khi bạn đã gán một giá trị cho một biến const, bạn không thể gán lại nó cho một giá trị mới. Giống như từ khóa implies.
for (const i = 1; i <= 10; i++) {Ví dụ trên sẽ đưa ra một lỗi cho bạn biết rằng bạn đang cố gán giá trị mới cho 1 const.
Const là hữu dụng với bất cứ khi nào bạn biết rằng bạn có một biến mà bạn sẽ cố định. Và bây giờ bạn tự hỏi, tại sao chúng ta lại lưu trữ một giá trị trong một biến có giá trị không thay đổi?
Một phần của điều đó là đúng. Mặt khác, bạn có thể sử dụng nếu để dễ đọc. Bạn có thể chọn hard code một số giá trị trong code của mình ở nhiều nơi, nhưng sử dụng một biến const làm cho mã của bạn dễ bảo trì hơn. Bất cứ khi nào giá trị mã hóa thay đổi, bạn chỉ phải thay đổi biến const, thay vì đi qua toàn bộ mã tìm kiếm giá trị mã hóa cứng đó.
const username = document.querySelect('input[name="username"]').value;Điều tương tự áp dụng cho ví dụ tiếp theo. Bất cứ khi nào bạn đang xử lý các đối tượng lớn, bạn cũng có thể sử dụng const để cải thiện khả năng đọc.
const books = api.data.sources['library'].books;Sử dụng const có thể giúp làm cho code sau này của bạn rõ ràng hơn. Điều này đặc biệt hữu ích khi bạn làm việc trong một nhóm. Nếu ai đó nhìn thấy một mã const, người đó biết rằng giá trị có lẽ không nên thay đổi.
4. Ngoại lệ: Sự kết hợp của const và các đối tượng
Các declaration const tạo ra một tham chiếu chỉ đọc đến một giá trị. Điều đó không có nghĩa là giá trị mà nó giữ là bất biến, chỉ là định danh biến không thể được gán lại.
Điều này có nghĩa là không thể thực hiện được những điều sau vì chúng tôi cố gắng gán lại cho tên người dùng cho biến const.
const user = { 'name': 'NhiTT'}; user = { 'name': 'Truong Thi Nhi'}; console.log(user);Nhưng có thể thay đổi các thuộc tính của đối tượng này. Điều này là do giá trị mà một const nắm giữ không phải là bất biến.
const user = { 'name': 'NhiTT'};5. Khi nào nên sử dụng loại biến nào?
Tôi nghĩ một trong những lý do duy nhất mà bạn nên sử dụng var là khi bạn làm việc trên một base code không hỗ trợ ES6.
Nói chung, let tốt hơn là var vì nó làm giảm phạm vi. Trong hầu hết các trường hợp, bạn sẽ có thể biến tất cả các câu lệnh var thành câu lệnh let mà không có bất kỳ thay đổi ngữ nghĩa nào.
Const được đánh giá là tốt hơn so với let. Từ góc độ kỹ thuật, const không bao giờ là bắt buộc. Mỗi const có thể được thay thế bằng một biến let, nhưng sử dụng const có thể làm cho mã sạch hơn. Trừ khi bạn cần thay đổi giá trị, hãy sử dụng const. Nó bao gồm tất cả lợi ích khi sử dụng let cùng với việc giảm sự hiện diện của các biến chưa được khởi tạo và làm cho mã dễ đọc và thiện cảm hơn. Nếu bạn không chắc chắn liệu mình có cần thay đổi giá trị hay không, hãy biến nó thành một const cho đến khi bạn cần thay đổi nó.
source:
https://medium.com/better-programming/javascript-variables-the-difference-between-var-let-and-const-10efef5d2728
Sự Khác Biệt Giữa Gang Và Thép
Gang và Thép có nhiều điểm khác biệt rất rõ ràng đặc biệt là màu sắc, độ cứng, độ bền và công dụng của từng loại. Để đi sâu vào tìm hiểu được sự khác biệt của cả 2 chúng ta cần tìm hiểu nhiều yếu tố từ khái niệm, công thức cho đến đặc tính.
+ Báo giá sắt thép xây dựng
+ Bảng giá Xà Gồ C, Z hôm nay mới nhất
+ Báo giá tôn thép xây dựng
Sự khác biệt giữa gang và thép
Để phân biệt được tính chất của gang và thép chúng ta dựa vào cấu tạo và đặc tính cơ bản, cụ thể như sau:
Khái niệm gang và thép
Gang là hợp kim được cấu tạo từ Sắt và Các bon với hàm lượng cacbon lớn hơn 2,14%, ngoài ra gang còn chứa thêm các nguyên tố khác như Si, P, S và Mn. Gang rẻ hơn thép với điểm nóng chảy thấp và khả năng đúc nhanh. Không co lại vì lạnh được. Gang dễ tạo mà không cần phải kiểm soát lượng cacbon có trong chúng.
Thép là hợp kim được cấu thành từ Sắt và Cacbon giống như Gang nhưng lượng các bon thấp hơn 2% cùng với các nguyên tố khác, chúng làm cho các nguyên tử sắt không di chuyển được nhiều. Khi thêm các nguyên tố khác vào một cách có kiểm soát sẽ tạo ra các loại thép khác nhau và chất lượng cũng khác nhau (Đây là lý do hiện nay có rất nhiều loại thép trên thị trường)
Từ 2 khái niệm trên, chúng ta có thể phân biệt rõ các đặc tính của từng loại cụ thể.
Sự khác biệt trong đặc tính của gang và thép
Đặc tính của từng loại sẽ tạo ra các mục tiêu sử dụng chúng khác nhau và ứng dụng của chúng trong cuộc sống cũng khác nhau.
Gang
Mang tính giòn, giảm xóc, hấp thụ rung và tiếng ồn với nhiệt độ nóng chảy của gang là đủ làm cho phôi của bất kỳ loại hợp kim nào. Nó có thể dùng để tạo nhiều hình dạng phức tạp, chi tiết máy thậm chí là đồ nội thất bằng gang vì dễ gia công, chịu mài mòn cùng với giá thành thấp.
Gang cứng, không bị co lại khi lạnh nhưng lại rất giòn vì thế dễ bị vỡ nhưng không thể uốn cong hoặc lõm khi va đập.
Thép
Với tính chất nhẹ, khó đúc, độ nhớt cao. Dễ uốn và tạo hình bằng tay nhưng khó nóng chảy và được sản xuất có kiểm soát nên công dụng của thép nhiều hơn so với Gang vì chỉ cần thay đổi một số nguyên tố trong quá trình tạo nên thép thì cũng tạo ra được một loại thép khác với ứng dụng khác.
Giá thành của thép cao hơn so với gang vì quy trình tạo ra chặt chẽ, kiểm soát thấu đáo để đảm bảo chất lượng nên tốn nhiều công sức, thời gian hơn.
Ứng dụng của gang và thép trong cuộc sống và xây dựng
Như đã nói ở trên, với các tính chất đó, Gang và Thép được sử dụng nhiều trong cuộc sống nhưng với các ứng dụng khác nhau.
Trong cuộc sống
Thép có thể làm được các vật dụng với hình dạng không quá phức tạp, độ giãn nở và chịu nhiệt, đàn hồi tốt khiến cho thép góp mặt trong nhiều công dụng và trong các vật liệu thiết bị chịu lực, chịu nhiệt.
Trong khi đó, gang lại góp phần vào các chi tiết máy, các vật dụng nhà bếp hay nội thất vì tính cứng, chịu mài mòn của chúng. Tuy nhiên các vật liệu hay thiết bị từ gang thông thường có độ thẩm mỹ kém hơn nhưng lại rẻ hơn nhiều so với các thiết bị, đồ gia dụng làm từ các vật liệu khác.
Ngoài ra gang trắng (một trong các loại Gang) còn được dùng để luyện thép.
Trong xây dựng
Thép được sử dụng để làm xương, khung sườn của nhà, chịu được nhiệt độ, sự tác động của môi trường cũng như khả năng chịu lực tốt, ứng dụng của thép trong xây dựng là quá nhiều và hầu như tất cả các công trình hiện tại đều có thép.
Gang được ứng dụng trong xây dựng hiện nay là Gang xám, ngày xưa thường dùng làm máng dẫn nước, ống dẫn nước nhưng hiện tại đã được thay thế bằng các vật liệu khác có độ bền tốt hơn, phù hợp hơn với nhu cầu của người sử dụng.
THÔNG TIN LIÊN HỆ
+ Địa chỉ: 55 Đường Trần Nhật Duật, Tân Định, Quận 1, Hồ Chí Minh 700000
+ Tel: 0767 137 999 (Mr Hiếu)
+ Email: lochieuphat@gmail.com
Sự Khác Biệt Giữa Internet Và Intranet
Web Tin Học Trường Tín có bài: Sự khác biệt giữa Internet và Intranet Nói chung, hầu hết mọi người đều nhầm lẫn giữa Internet và Intranet. Trên thực tế, có rất nhiều điểm khác biệt để phân biệt giữa 2 khái niệm này.
Nói chung, đa số mọi người đều nhầm lẫn giữa Internet và Intranet. Trên thực tế, có rất nhiều điểm khác biệt để phân biệt giữa 2 định nghĩa này.
Internet
Internet được sử dụng để kết nối đồng thời các mạng máy tính khác nhau. Nó là một mạng công cộng, do đó bất kỳ ai cũng có thể có thể truy cập Internet. Trong Internet, có nhiều người dùng và Internet cung cấp con số tin tức không giới hạn cho người dùng.
Ưu điểm
Internet là một mạng lưới các máy tính tại những địa điểm khác nhau trên thế giới.
Cho phép bạn gửi email từ mọi vị trí.
Giúp bạn gửi hoặc nhận file giữa các máy tính khác nhau.
Internet cấp phép mọi thứ các doanh nghiệp quy mô nhỏ, vừa và lớn bán đồ của họ với các khoản đầu tư nhỏ.
Internet cung cấp tin tức trên toàn thế giới.
Internet giúp bạn cập nhật những tin tức và công nghệ mới nhất.
Internet giúp mọi người gặp gỡ những người có cùng sở thích như cộng đồng, diễn đàn, chat, trang web, v.v…
Nhược điểm
Nó cho phép mọi người nói đến tất cả mà không có bất kỳ giới hạn hoặc kiểm duyệt nào. Điều đó có thể gây ảnh hưởng xấu trong một số trường hợp.
Các công cụ tìm kiếm có thể hiển thị một số kết quả thông tin giả mạo.
Internet cũng có thể thay thế sự hợp tác trực diện và làm mất đi tính kết nối giữa loài người với nhau.
Internet khiến con người lười biếng hơn – đối với những việc thông thường như tìm kiếm nhà hàng gần nhất hoặc tìm khách sạn tốt nhất.
Intranet
Intranet là loại Internet được dùng bởi tư nhân. Đây là một mạng riêng, do đó không phải bất kỳ ai cũng cũng có thể có thể truy cập vào Intranet. Trong Intranet, con số người sử dụng bị có hạn và nó cũng cung cấp số lượng tin tức có hạn cho người dùng.
Ưu điểm
Nhanh chóng, dễ dàng, kinh phí thấp
Dựa trên các chỉ tiêu mở
Cho phép kết nối với những hệ thống khác
Truy cập tin tức nội bộ và bên phía ngoài
Cải thiện giao tiếp
Nhược điểm
Xuất hiện mối dọa dẫm với việc chia sẻ thông tin và mất quyền khống chế
Có thể bị truy cập trái phép
Băng thông có hạn cho doanh nghiệp
Quá tải thông tin làm giảm công suất
Có độ phức tạp và chi phí khó xác định
Internet và Intranet khác gì nhau?
Internet và Intranet khác gì nhau?
Bây giờ, hãy cũng điểm qua sự khác biệt giữa Internet và Intranet.
Internet, Intranet, sự khác biệt giữa Internet và Intranet, phân biệt Internet và Intranet, Internet và Intranet khác gì nhau
Nội dung Sự khác biệt giữa Internet và Intranet được tổng hợp sưu tầm biên tập bởi: Tin Học Trường Tín. Mọi ý kiến vui lòng gửi Liên Hệ cho chúng tôi để điều chỉnh. chúng tôi tks.
Cập nhật thông tin chi tiết về Sự Khác Biệt Giữa Const Và Constexpr trên website Channuoithuy.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!