Erzwingen einer Zeichenfolge zu einer Ganzzahl in GolfScript


11

GolfScript erzwingt automatisch Werte gemäß der folgenden Prioritätssequenz:

Ganzzahl → Array → String → Block

(vom niedrigsten zum höchsten aufgelistet.)

Dies bedeutet, dass "1"7+die Zeichenfolge "17"auf dem Stapel verbleibt (und nicht 8), da Zeichenfolgen eine höhere Priorität als Ganzzahlen haben.

[ An diese GolfScript-Veteranen - Entschuldigung für die Beleidigung Ihrer jeweiligen Intelligenz. ]]

Wie wäre es möglich, dies andersherum zu tun? Das heißt, eine Zeichenfolge in eine Ganzzahl zu zwingen ?


name:~ args:1 functions:bitwise not, dump, eval
Undichte Nonne


@LeakyNun; Nett! Möchten Sie dies in eine Antwort einfügen? Ich würde es auf jeden Fall akzeptieren.
digitalis_


@downvoter; Könnten Sie bitte einen Kommentar hinterlassen, der erklärt, warum Sie abgestimmt haben?
digitalis_

Antworten:


10

~In golfscript gibt es einen Operator , der Folgendes ausführt : bitwise not, dump, eval.

Daher "1"wird die Zeichenkette geben , "1"während "1"~wird die Zeichenfolge auszuwerten (in die ganze Zahl 1).

Dann müssen Sie nur noch tun "1"~7+.

Probieren Sie es online aus!


5
Es ist erwähnenswert, dass dies ein evalGolfscript-Code ist, was "1.0"~bedeutet , dass z . B. etwas Unerwartetes getan wird .
Lynn
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.