Dart中的此关键字,字符串插值

问题描述:

Dart编辑器似乎无法识别$this.keyword,其中keyword是一个类的字段。该表达式位于方法上下文的函数中。但它确实承认$keyword。令人困惑的是,为什么它不承认$this.keywordthis关键字应该像C#或Java一样僵化。Dart中的此关键字,字符串插值

class TryMe { 
String keyword; 

void hi(Function callback) { 
    callback(() => return '$this.keyword'); 
} 
} 

如果插值部分是不是你需要添加{}

callback(() => return '${this.keyword}'); 

我不知道你的代码做一个标识符,但表达,但你不知道通常使用this来指代类字段。你可以重写代码:

class TryMe { 
    String keyword; 

    void hi(Function callback) { 
    callback(() => keyword); 
    } 
} 

还要注意的是使用=>语法,当你不需要return

+0

你说的对。是否有关于是否可以省略'this'关键字的文章?它是由什么机制驱动的? – sudo 2014-10-16 22:09:18

+1

如果你写了一个变量名,如'x',并且在文本范围中没有'x'的声明,那么它总是意味着'this.x'。如果在范围内有一个声明,并且它是一个实例成员,那么它也意味着'this.x'。否则,它将引用静态/*/局部变量声明。 – lrn 2014-10-20 14:57:16