Ép buộc một chuỗi thành một số nguyên trong GolfScript


11

GolfScript tự động ép buộc các giá trị, theo trình tự 'ưu tiên' sau đây:

số nguyên → mảng → chuỗi → khối

(được liệt kê từ thấp nhất đến cao nhất.)

Điều này có nghĩa là để "1"7+lại chuỗi "17"trên ngăn xếp (và không 8), bởi vì các chuỗi có mức độ ưu tiên cao hơn số nguyên.

[ Gửi những cựu chiến binh GolfScript - xin lỗi vì đã xúc phạm trí thông minh tương ứng của bạn. ]

Làm thế nào có thể làm điều này theo cách khác? Đó là, để ép buộc một chuỗi thành một số nguyên ?


name:~ args:1 functions:bitwise not, dump, eval
Rò rỉ Nun


@LeakyNun; Đẹp! Bạn có muốn đưa điều này vào một câu trả lời? Tôi chắc chắn sẽ chấp nhận nó.
digitalis_


@downvoter; bạn có thể vui lòng để lại một bình luận giải thích lý do tại sao bạn đã đánh giá thấp?
digitalis_

Câu trả lời:


10

Có một nhà điều hành ~trong golfs, làm như sau : bitwise not, dump, eval.

Do đó, "1"sẽ đưa ra chuỗi "1"trong khi "1"~sẽ đánh giá chuỗi đó (thành số nguyên 1).

Sau đó, tất cả những gì bạn cần làm là "1"~7+.

Hãy thử trực tuyến!


5
Điều đáng nói là đây là một evalmã golf, có nghĩa là ví dụ như "1.0"~có gì đó bất ngờ.
Lynn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.