Apa yang dilakukan ": ="?

111

Saya telah melihat :=digunakan dalam beberapa contoh kode, tetapi tidak pernah dengan penjelasan yang menyertainya. Tidak mungkin Google menggunakannya tanpa mengetahui nama yang tepat untuk itu.

Apa fungsinya?

Topan
sumber
11
Dalam bahasa apa
Beta
4
Anda biasanya menggunakan :=ketika Anda mendefinisikan sesuatu, untuk memisahkannya dari perubahan variabel biasa .. Bahasa pemrograman apa yang kita bicarakan?
svens
3
PL / SQL itu untuk tugas. Tetapi mengingat bahasa yang berbeda, jawaban itu tidak dijamin benar - jadi dalam bahasa apa contoh itu?
Andrew
12
Untuk meng-google sesuatu seperti ini, eja dan apit dengan tanda kutip, seperti ini: "titik dua sama dengan"
Intelekshual
3
Saya pikir Pascal punya operator ini!

Jawaban:

104

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

Dalam bahasa pemrograman komputer, tanda sama dengan biasanya menunjukkan operator boolean untuk menguji persamaan nilai (misalnya seperti di Pascal atau Eiffel), yang konsisten dengan penggunaan simbol dalam matematika, atau operator tugas (misalnya seperti dalam bahasa C-like) ). Bahasa yang membuat pilihan sebelumnya sering kali menggunakan titik dua sama dengan (: =) atau ≔ untuk menunjukkan operator tugasnya. Bahasa yang membuat pilihan terakhir sering menggunakan tanda sama dengan ganda (==) untuk menunjukkan operator persamaan boolean mereka.

Catatan: Saya menemukan ini dengan mencaricolon equals operator

membanting tulang
sumber
58
Ironisnya, jawaban ini sekarang berada di atas Wikipedia saat dicari colon equals operator.
nighthawk454
6
Jika kami terus mengetik colon equals operator, kami bekerja dengan ajaib pada SEO Google untuk menjadikannya hasil teratas
ATLUS
47

Ini adalah operator penugasan di Pascal dan sering digunakan dalam pembuktian dan pseudo-code. Itu sama saja dengan =bahasa dialek C.

Secara historis, makalah ilmu komputer digunakan =untuk perbandingan kesetaraan dan untuk tugas. Pascal digunakan :=untuk menggantikan panah kiri yang sulit diketik. C pergi ke arah yang berbeda dan sebagai gantinya memutuskan operator =dan ==.

John Kugelman
sumber
25

Dalam bahasa yang diketik secara statis, Go := adalah inisialisasi dan penugasan dalam satu langkah. Ini dilakukan untuk memungkinkan pembuatan variabel yang diinterpretasikan seperti dalam bahasa yang dikompilasi.

// Creates and assigns
answer := 42

// Creates and assigns
var answer = 42
Matias Forbord
sumber
5

Beberapa bahasa digunakan :=untuk bertindak sebagai operator penugasan.

Mike Lewis
sumber
@Pacerier lihat posting ini stackoverflow.com/questions/7462322/… mengapa jawaban atas pertanyaan Anda bisa berupa "Ya" dan "Tidak".
TigOldBitties
@TigOldBitties, Good gotcha dari Erwin di sana.
Pacerier
0

Ini adalah sintaks lama (pascal) untuk operator penugasan. Ini akan digunakan seperti ini:

a := 45;

Mungkin dalam bahasa lain juga, mungkin dalam penggunaan yang serupa.

mklauber
sumber
0

Di banyak buku Ilmu Komputer, ini digunakan sebagai operator penugasan, untuk membedakan dari operator persamaan =. Namun, dalam banyak bahasa tingkat tinggi, penugasan adalah =dan kesetaraan ==.

gailbear
sumber
0

Ini seperti panah tanpa menggunakan simbol kurang dari <= jadi seperti semua orang sudah mengatakan operator "tugas". Memberikan kejelasan tentang apa yang sedang diatur ke tempat yang bertentangan dengan operator logis dari kesetaraan.

Dalam Matematika itu seperti sama tetapi A: = B berarti A didefinisikan sebagai B, batang rangkap tiga sama dengan dapat digunakan untuk mengatakan itu mirip dan sama menurut definisi tetapi tidak selalu sama.

Bagaimanapun saya menunjukkan referensi lain ini yang mungkin ada di benak orang-orang yang menemukannya, tetapi sebenarnya hanya bidang itu sama dan kurang yang sama diambil (atau berpotensi mudah bingung dengan = <) dan sesuatu yang baru untuk mendefinisikan tugas diperlukan dan yang paling masuk akal.

Referensi Historis: Saya pertama kali melihat ini di SmallTalk, Bahasa Objek asli, di mana SJ dari Apple hanya menyalin bagian Windows dari dan BG Microsoft mempermudah dari mereka lebih jauh (single threaded). Akhirnya SJ di NeXT mengambil pelajaran penting kedua dari Xerox PARC, yang menjadi Objective C.

Yah pokoknya mereka baru mengambil operator assiment yang sama dengan titik dua dari ALGOL 1958 yang kemudian dipopulerkan oleh Pascal

https://en.wikipedia.org/wiki/PARC_(company)

https://en.wikipedia.org/wiki/Assignment_(computer_science)

Penugasan biasanya memungkinkan variabel untuk menyimpan nilai yang berbeda pada waktu yang berbeda selama masa hidup dan cakupannya. Namun, beberapa bahasa (terutama berfungsi secara ketat) tidak mengizinkan penugasan ulang yang "merusak" semacam itu, karena mungkin menyiratkan perubahan status non-lokal. Tujuannya adalah untuk menegakkan transparansi referensial, yaitu fungsi yang tidak bergantung pada status beberapa variabel, tetapi menghasilkan hasil yang sama untuk sekumpulan input parametrik tertentu pada titik waktu mana pun.

https://en.wikipedia.org/wiki/Referential_transparency

Tuan James
sumber
0

Untuk VB.net,

konstruktor (untuk kasus ini, Me = this in Java):

Public ABC(int A, int B, int C){
Me.A = A;
Me.B = B;
Me.C = C;
}

ketika Anda membuat objek itu:

new ABC(C:=1, A:=2, B:=3)

Kemudian, terlepas dari urutan parameternya, objek ABC itu memiliki A = 2, B = 3, C = 1

Jadi, praktik yang sangat baik bagi orang lain untuk membaca kode Anda secara efektif

Dekat
sumber
-1

Colon-sama digunakan di Algol dan turunannya seperti Pascal dan Ada karena itu sedekat ASCII dengan simbol panah kiri.

Konvensi aneh menggunakan sama dengan untuk tugas dan ganda sama untuk perbandingan dimulai dengan bahasa C.

Dalam Prolog, tidak ada perbedaan antara penugasan dan uji kesetaraan.

Michael memulihkan Monica Cellio
sumber
Jika mereka menginginkannya dekat dengan panah kiri, mereka bisa menggunakan <-seperti yang dilakukan Haskell. Mereka tidak mencoba untuk mendapatkan dekat dengan panah kiri dengan :=, mereka menggunakan matematika 'didefinisikan sebagai' Operator: mathworld.wolfram.com/Defined.html
Variadicism
1
Peringatan Pedant: <- di Haskell bukanlah penugasan. Haskell tidak memiliki tugas destruktif seperti Pascal, Ada dll. <- adalah bagian dari sintaks do-notation untuk substitusi parameter. Ini lebih analog dengan proses mengganti nilai menjadi parameter dalam panggilan subrutin.
Michael memulihkan Monica Cellio
1
@ Michael Cukup adil. Kamu benar. Salahku. Bagaimanapun, intinya tetap bahwa jika mereka mencoba untuk meniru panah kiri, mereka tidak akan menggunakan :=, mereka akan menggunakannya <-.
Variadicism