Memaksa string ke integer di GolfScript

12

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 ?

digitalis_
sumber
name:~ args:1 functions:bitwise not, dump, eval
Leaky Nun
Ini memberi 8.
Leaky Nun
@LeakyNun; Bagus! Apakah Anda ingin memberi jawaban ini? Saya pasti akan menerimanya.
digitalis_
@ downvoter; dapatkah Anda memberikan komentar yang menjelaskan mengapa Anda telah downvoted?
digitalis_

Jawaban:

10

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 integer 1).

Lalu, yang perlu Anda lakukan adalah "1"~7+.

Cobalah online!

Biarawati Bocor
sumber
5
Perlu disebutkan bahwa ini adalah evalkode skrip golf, yang berarti misalnya "1.0"~melakukan sesuatu yang tidak terduga.
Lynn