В чем разница между `any` и` var` у балерины - PullRequest
0 голосов
/ 11 мая 2018

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

var myVar = "my var";

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

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

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

«любой» - это тип, который обозначает все значения, с которыми может работать программа 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;  
0 голосов
/ 11 мая 2018

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

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

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

...