【问题标题】:I need some clarification on some code samples我需要对一些代码示例进行一些说明
【发布时间】:2014-10-02 09:33:45
【问题描述】:

http://radar.oreilly.com/2013/05/dart-is-not-the-language-you-think-it-is.html

冒着提出愚蠢问题的风险:

我以前从未见过这种语法:

// Dart
class Point {
  num x, y;
  Point(this.x, this.y);

  String toString() => 'X: $x, Y: $y';
}

&gt 是否表示引用?

import 'dart:mirrors';

class LoggingProxy {
  InstanceMirror mirror;
  LoggingProxy(delegate)
    : mirror = reflect(delegate);

  noSuchMethod(Invocation invocation) {
    var name = invocation.memberName;
    print('${name} was called');
    return mirror.delegate(invocation);
  }
}

什么是冒号:

LoggingProxy(delegate)
  : mirror = reflect(delegate);

在做什么?

【问题讨论】:

    标签: dart


    【解决方案1】:

    源代码由于某种原因被转义:

    String toString() => 'X: $x, Y: $y';
    

    What do entities: < and > stand for?

    这只是函数体的=>语法简写,等于{return 'X: $x, Y: $y'; }
    应该改为String toString() => 'X: $x, Y: $y';

    这是constructor's initializer list:

    LoggingProxy(delegate)
      : mirror = reflect(delegate);
    

    【讨论】:

    • #1 derp #2 啊,有点像,但对于构​​造函数?
    • @chrisgotter #2 例如,最终字段不能在构造函数的主体中初始化。但是,如果它们依赖于构造函数的参数,你可以使用初始化列表。
    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多