如何将字符串转换为int?

use*_*735 4 ballerina

根据类型转换示例,字符串到 int 的转换是通过int.convert(). 然而在 Ballerina 1.0.0 中这不起作用:

$ ballerina version
Ballerina 1.0.0
Language specification 2019R3
$ cat test.bal 
public function main() {
    string x = "42";
    int|error y = int.convert(x);
}
$ ballerina build test.bal 
Compiling source
        test.bal
error: .::test.bal:3:19: undefined function 'convert'
$
Run Code Online (Sandbox Code Playgroud)

另外,正如这里其他地方<int>提到的那样,SO 也不起作用:

$ ballerina version
Ballerina 1.0.0
Language specification 2019R3
$ cat test.bal 
public function main() {
    string x = "42";
    int|error y = <int>x;
}
$ ballerina build test.bal 
Compiling source
        test.bal
error: .::test.bal:3:19: incompatible types: 'string' cannot be cast to 'int'
$
Run Code Online (Sandbox Code Playgroud)

ldc*_*mal 6

Ballerina v1.0及更高版本,可以转换stringint如下:

import ballerina/lang.'int as langint;

public function main() {
    string x = "42";
    int|error y = langint:fromString(x);
}
Run Code Online (Sandbox Code Playgroud)

  • 您还可以像这样导入内置 int 包。`import ballerina/lang.'int;` 并将函数引用为 `int | 错误 y = 'int:fromString(x);`。以“”开头的标识符称为分隔标识符。一种用例是处理关键字冲突。 (2认同)

Ime*_*gha 5

从 Ballerinaswan lake版本开始,您可以简单地进行类型转换。不需要额外的进口。

public function main() {
    string x = "42";
    int|error y = int:fromString(x);
}
Run Code Online (Sandbox Code Playgroud)