如何在芭蕾舞女演员中进行类型检查

时间:2018-05-10 20:06:17

标签: ballerina

我尝试if(string? myStr)但是在编辑器中出现语法错误。我如何在芭蕾舞女演员中进行类型检查?

4 个答案:

答案 0 :(得分:1)

检查类型的用例是什么?

根据规格类型和值,根据其结构自动确定

  

芭蕾舞女演员的类型系统比传统系统更灵活   静态类型语言。首先,它是结构性的:而不是   要求程序明确说明哪些类型是兼容的   相互之间,确定类型和值的兼容性   自动根据其结构;这在特别有用   结合来自多个数据的集成方案,   独立设计的系统。其次,它提供了联合类型:a   选择两种或更多种类型。第三,它提供开放记录:记录   除了在其中明确命名的字段之外,还可以包含字段   类型定义。这种灵活性使它也可以用作   在分布式应用程序中交换的数据的模式。   芭蕾舞女演员的数据类型旨在与之相得益彰   JSON;任何JSON值都具有直接,自然的表示形式   芭蕾舞女演员的价值。 Ballerina还提供对XML和XML的支持   关系数据。

答案 1 :(得分:1)

您可以在此处使用type switch(match)语句或match语句的表达式版本。这是一个例子。

import ballerina/io;

function main (string... args) {
    any a = "some string value";

    // If the type of the variable a is string executes the first block, if not the second block.
    match a {
        string s => { io:println("string type");} 
        any k => {io:println("any other type");}
    }
}

有关详细信息,请参阅以下示例。 https://ballerina.io/learn/by-example/match.html

答案 2 :(得分:1)

我确定这可能是次优的答案(即未涵盖所有方面),但我发现在Ballerina 1.0(实现语言规范2019R3)中,可以使用类型测试表达式

我发现的最佳文档是:

下面是一个正常工作的Ballerina 1.0示例,其中包含 union any 类型:

$ ballerina run test.bal 
typeof a: typedesc int
a is int
typeof b: typedesc string
b is string

运行时打印:

{{1}}

答案 3 :(得分:1)

您可以为此使用类型保护语句,

例如:

    if (myStr is string) {
       io:println("This is String");
    } else {
       io:println("This isn't String");
    }