В чем разница между `any` и`var` у балерины

Я пытаюсь сделать

var myVar = "my var";

match myVar {
    string s => { io:println("string"); }
    any k => { io:println("any var"); }
}

Кажется, это не правильно. В чем разница между var а также any, Я думаю, когда я использую var под балериной создает any? правильный?

2 ответа

"любой" - это тип, который обозначает все значения, с которыми может работать программа Ballerina.

any myVal = "this is a string value";

// Unsafe type cast, hence the union type.
string | error myStr = <string> myVal; 

// Following is also valid based on the definition of the "any" type. 
any myVal = 10;

"var" - это способ объявления переменной, тип которой выводится из выражения в правой части. Как только тип переменной получен, вы можете назначать значения только этого типа.

// This is equivalent to 'string a = "this is a string value";'
var a = "this is a string value"; 

// Now the following will result in a compilation failure. 
a = 10;  

Думаю, я нашел ответ на свой вопрос.

"Тип" var ", тип выводится с правой стороны, определяется путем рассмотрения статического типа с правой стороны. При этом тип" any "представляет все типы вместе".

Мой плохой не читать документы:(

Другие вопросы по тегам