Penugasan pada If
Blok if dan elseif dapat menerima assignment sebagai ganti ekspresi kondisional. Saat kondisi dievaluasi, assignment akan dilakukan dan nilai yang di-assign akan digunakan sebagai ekspresi kondisional. Variabel yang di-assign hanya berada dalam scope badan kondisional, artinya tidak pernah tersedia jika nilai tidak truthy. Dan Anda harus menggunakan “walrus operator” := sebagai ganti = untuk melakukan assignment.
if user := database.find_user "moon" print user.nameif user := database.find_user "moon" print user.nameif hello := os.getenv "hello" print "You have hello", helloelseif world := os.getenv "world" print "you have world", worldelse print "nothing :("if hello := os.getenv "hello" print "You have hello", helloelseif world := os.getenv "world" print "you have world", worldelse print "nothing :("Assignment if dengan beberapa nilai return. Hanya nilai pertama yang dicek, nilai lainnya tetap berada dalam scope.
if success, result := pcall -> "get result without problems" print result -- variabel result berada dalam scopeprint "OK"if success, result := pcall -> "get result without problems" print result -- variabel result berada dalam scopeprint "OK"Assignment pada While
Section titled “Assignment pada While”Anda juga bisa menggunakan assignment if di loop while untuk mendapatkan nilai sebagai kondisi loop.
while byte := stream\read_one! -- lakukan sesuatu dengan byte print bytewhile byte := stream\read_one! -- lakukan sesuatu dengan byte print byte