2011-03-17 29 views
89

Tôi đã xem := được sử dụng trong một số mẫu mã, nhưng không bao giờ có giải thích kèm theo. Nó không chính xác có thể để google sử dụng của nó mà không biết tên thích hợp cho nó.": =" làm gì?

Nó sẽ làm gì?

+11

Trong ngôn ngữ gì? – Beta

+3

Bạn thường sử dụng ': =' khi bạn định nghĩa một cái gì đó, để tách nó khỏi các thay đổi biến thường xuyên .. Chúng ta đang nói về ngôn ngữ lập trình nào? – svens

+2

PL/SQL là để gán. Nhưng với một ngôn ngữ khác, câu trả lời đó không phải là sự bảo đảm để giữ đúng sự thật - vì vậy ngôn ngữ nào là ví dụ? – Andrew

Trả lời

83

http://en.wikipedia.org/wiki/Equals_sign#In_computer_programming

Trong các ngôn ngữ lập trình máy tính, dấu bằng thường biểu thị hoặc là một nhà điều hành boolean để kiểm tra sự bình đẳng của các giá trị (ví dụ như trong Pascal hoặc Eiffel), phù hợp với việc sử dụng của biểu tượng trong toán học, hoặc một toán tử gán (ví dụ như trong các ngôn ngữ giống như C). Các ngôn ngữ thực hiện lựa chọn cũ thường sử dụng dấu hai chấm (= =) hoặc ≔ để biểu thị toán tử gán của chúng. Các ngôn ngữ tạo ra sự lựa chọn thứ hai thường sử dụng dấu hai bằng (==) để biểu thị toán tử bình đẳng boolean của chúng.

Lưu ý: Tôi thấy điều này bằng cách tìm kiếm colon equals operator

+40

Trớ trêu thay, câu trả lời này giờ đã ở trên Wikipedia khi tìm kiếm 'toán tử đẳng tử'. – nighthawk454

+4

Nếu chúng ta tiếp tục gõ 'dấu bằng bằng dấu hai chấm ', chúng ta thực hiện phép thuật trên SEO của Google để làm cho kết quả hàng đầu là – ATLUS

4

Một số ngôn ngữ sử dụng := để hoạt động như toán tử gán.

+2

như postgresql – TigOldBitties

+0

@TigOldBitties, Sẽ không '=' hoạt động? – Pacerier

+0

@Pacerier xem bài đăng này http://stackoverflow.com/questions/7462322/the-forgotten-assignment-operator-and-the-commonplace là tại sao câu trả lời cho câu hỏi của bạn có thể là "Có" và "Không". – TigOldBitties

0

Đây là cú pháp cũ (pascal) cho toán tử gán. Nó sẽ được sử dụng như vậy:

a := 45; 

Nó cũng có thể bằng các ngôn ngữ khác, có thể sử dụng tương tự.

0

Trong rất nhiều sách CS, nó được sử dụng như các nhà điều hành chuyển nhượng, để phân biệt từ các nhà điều hành bình đẳng =. Tuy nhiên, trong nhiều ngôn ngữ cấp cao, nhiệm vụ là = và bình đẳng là ==.

41

Đây là nhà điều hành chuyển nhượng trong Pascal và thường được sử dụng trong các bằng chứng và mã giả. Nó tương tự như = bằng ngôn ngữ C-dialect.

Trước đây, các giấy tờ khoa học máy tính đã sử dụng = để so sánh bình đẳng và cho các bài tập. Pascal đã sử dụng := để đứng trong mũi tên trái khó gõ. C đi theo một hướng khác và thay vào đó quyết định các nhà điều hành ===.

19

Trong ngôn ngữ được nhập tĩnh Go: = là khởi tạo và gán trong một bước. Nó được thực hiện để cho phép tạo ra các biến tương tự được diễn giải trong một ngôn ngữ được biên dịch.

// Creates and assigns 
answer := 42 

// Creates and assigns 
var answer = 42 
-1

Dấu hai chấm được sử dụng trong Algol và hậu duệ của nó như Pascal và Ada vì nó gần bằng ASCII được biểu tượng mũi tên trái.

Quy ước sử dụng bằng nhau cho phép gán và số nhị phân để so sánh được bắt đầu bằng ngôn ngữ C.

Trong Prolog, không có sự phân biệt giữa bài tập và bài kiểm tra bình đẳng.

+0

Mã ASCII' 60' là dành cho '<' –

+0

Nếu họ muốn nó gần mũi tên trái, họ có thể đã sử dụng ' <-' như Haskell đã làm. Họ không cố gắng đến gần mũi tên bên trái với ': =', họ đang sử dụng toán tử 'được định nghĩa là' toán tử: http://mathworld.wolfram.com/Defined.html – Variadicism

+1

Cảnh báo cảnh báo: <- trong Haskell không phải là nhiệm vụ. Haskell không có nhiệm vụ phá hoại theo cách của Pascal, Ada, vv <- là một phần của cú pháp do-notation để thay thế tham số. Nó tương tự như quá trình thay thế các giá trị thành các tham số trong một cuộc gọi chương trình con. – Michael