GolfScript secara otomatis memaksa nilai, sesuai dengan urutan 'prioritas' berikut:
integer → array → string → blok
(terdaftar dari terendah ke tertinggi.)
Ini berarti "1"7+
meninggalkan string "17"
pada stack (dan bukan 8
), karena string memiliki prioritas lebih tinggi daripada integer.
[ Kepada para veteran GolfScript itu - permintaan maaf karena telah menghina kecerdasan Anda masing-masing. ]
Bagaimana mungkin melakukan ini dengan cara lain? Artinya, memaksa string menjadi integer ?
tips
golfscript
digitalis_
sumber
sumber
name:~ args:1 functions:bitwise not, dump, eval
8
.Jawaban:
Ada operator
~
di golfscript, yang melakukan berikut:bitwise not, dump, eval
.Oleh karena itu,
"1"
akan memberikan string"1"
sementara"1"~
akan mengevaluasi string itu (ke dalam integer1
).Lalu, yang perlu Anda lakukan adalah
"1"~7+
.Cobalah online!
sumber
eval
kode skrip golf, yang berarti misalnya"1.0"~
melakukan sesuatu yang tidak terduga.