键入的球拍字符串->数字如何将结果转换为整数

问题描述 投票:0回答:1

我正在尝试将项目从 Racket 转换为 Typed Racket,但在打字机制方面遇到了一些问题。

string->number 返回(U Complex False),但我找不到任何程序将其(甚至只是一个 Complex)转换为整数。

一个非常简短的例子来说明我的问题:

#language typed/racket

(define die : Integer 5)

(define dlist '("1" "2" "3" "4" "5"))

(set! die (string->number (car dlist)))

感谢您的帮助!

racket typed-racket
1个回答
2
投票

string->number
的结果具有类型
(U Complex False)
,其中
false
的值意味着
string->number
无法解析数字。在这种情况下,您确信它不会失败,因此您可以断言它是一个带有
(assert (string->number ...) exact-integer?)
:

的整数
#lang typed/racket

(define die : Integer 5)

(define dlist '("1" "2" "3" "4" "5"))

(set! die (assert (string->number (car dlist)) exact-integer?))

我知道这应该是一个简单的示例,但如果可以的话,请尝试坚持使用数字并避免使用字符串。

© www.soinside.com 2019 - 2024. All rights reserved.