木兰重生:更多 $ 的妙用, self 的拓展语义

2020-10-02 08:33:41 +08:00
 xuanwu

木兰重生:更多 $ 的妙用,self 的拓展语义

节选:

2 self 不可代替

2.1 可用关键词命名变量

与 PHP 类似,带 $ 可以用关键词命名变量:

> $while = 4
> $while
4

而用 self 则不允许:

> self.while = 3
(..•˘_˘•..) File "<STDIN>", line 1:6, unexpected token "WHILE"
self.while = 3
     ^
> self.while
(..•˘_˘•..) File "<STDIN>", line 1:6, unexpected token "WHILE"
self.while

2.2 应变属性

应变属性( attr )相关语法对应 Python 中的 @property 和 setter 。这里起名“应变属性”是因为 attribute 和 property 的含义区别很微妙,暂时未找到合适中文与类型内一般属性变量作区分,于是用功能特点命名。下图左边为木兰,右边为 Python 同功能代码,重点在三个 attr 。这部分功能未发现可代替的 self 语法。

后感

作为未参与木兰原始设计的第三方,仅从复现出的功能很难完全领会设计意图。就个人感觉,木兰的 $ 相关语法设计简化了 Python 的 self 相关语法。对 self 的语义拓展虽然看似信手拈来但也有合理之处。是否对多线程有特别好处待研究。

请赐教。

1984 次点击
所在节点    分享创造
2 条回复
yonng
2020-10-02 08:55:24 +08:00
实在不知道这门语言的目标定位是啥
Achilless
2020-10-02 18:49:27 +08:00
服了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/712168

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX