提问人:Quakumei 提问时间:9/12/2023 最后编辑:SimdQuakumei 更新时间:9/13/2023 访问量:179
MOJO: 如何将 StringRef 转换为 Int?
MOJO: How do I convert StringRef to Int?
问:
from sys import argv
fn fibonacci(n: Int) -> Int:
if n == 0:
return 0
elif n == 1:
return 1
return n + fibonacci(n-1)
fn main():
var vls: StringRef = argv()[0]
print("vls = ", vls)
var n: Int = Int(vls)
var kys: Int = fibonacci(n)
print(kys)
好吧,我正在用上面提供的代码测试一种新语言。我想通过 cli 传递 n,但是当我尝试显式转换参数时出现错误:
:!mojo /home/quakumei/Desktop/iamjaf/mytests/mojo-lang/mojo-small/fibonacci.mojo
/home/quakumei/Desktop/iamjaf/mytests/mojo-lang/mojo-small/fibonacci.mojo:13:21: er
ror: cannot construct 'Int' from 'StringRef' value in 'var' initializer
var n: Int = Int(vls)
~~~^~~~~
mojo: error: failed to parse the provided Mojo
shell returned 1
我已经看到了有关将 Float 转换为 Int 并向后转换的信息,但是没有看到有关如何正确将 StringRef 转换为 Int 的任何信息。有没有某种,比如在C++中?std::stoi
答:
1赞
Károly Szabó
9/13/2023
#1
始终尝试先搜索文档!在那里您可以找到函数,该函数会将 a 转换为 .atol
String
Int
请参见:https://docs.modular.com/mojo/stdlib/builtin/string.html#atol
评论
1赞
Quakumei
9/13/2023
谢谢。我已经在 mojo 文档上搜索了它,但似乎我仍然错过了它。谢谢!想知道花车是否有类似的东西......
0赞
Károly Szabó
9/14/2023
我认为目前缺少该功能
评论