更多语法 到目前为止你已经能成功写出一些实际的项目。在我们深入下一单元前,让我们学习更多实用的语法,你需要这些现实世界的工具来创建下一代杀手级应用。 二元运算符 第一个学习的语法就是二元运算符。二元运算符需要有两个操作数,那是他们为什么成为“二元”的原因。大多数都是用于算术。请看下面的例子。 math.rho 练习 现在轮到你写出f2c的合约。你可以使用相同的两个测试案例以确保你的结果正确。 最后你应该知道的二元操作符是++,它是用于“联合”或者说把两个小东西组合成一个大东西。这个操作符适用于列表和字符串。列表我们会在下一单元学习到,字符串我们已经学习过了。 greeter.rho 代码stdout!("I" ++ "<3" ++ "rholang")会输出什么? I <3 rholang["I", "<3", "rholang"]I<3rholangI++<3++rholang接收 Processes? 我们通常发送 ____ 和接收 ____. processes, namesprocesses, processesnames, namesnames, processes没有严格规定要做的事情:有一种放在门口的邮箱柜子。我们可能会把在你家门口的邮箱什么的弄混。“嘿,兄弟,还是账单?我想要情书”。 重温一下以前单元的内容,希望你还能记住。如果你已经写过你自己的rholang代码,那么你可能已经发现你是多么的希望你可以直接接收"Processes"而不需要输入各种*。这是很普遍的一种现象,很幸运rholang有一个很好的解决方法。我们经常接收"names",所以我们可以通过@myValue这里来绑定"name"语法。既然@myValue是一个"name",那么myValue一定是一个"process"。 这个语法允许我们做像这样的事, `for (@number <- @"someChan"){@"double"!(2 * number)}`` 应该用什么样的代码来与前面的代码并行以达到24在@"double"中? @number!(12)@"someChan"!(12)@number!(24)@"double"!(48)练习 重温一下第三课中传音筒的游戏,在那个展示中,我们已经使用了@message的语法模式,所以message是一个"process" 我们应该把for(@x <- @y){stdout!(...)}中 ... 替换为什么来让程序是正确的? @xx*x条件语句 几乎在所有编程语言中,程序的行为需要根据情况来定义。例如,如果天气很好的话,我就可以跑在小道上面,但是如果下雨的话,我就在路边。rholang是这样用语法实现的。 if ( /* condition */ ) { Nil // Do this if condition is true } else { Nil // Do this if condition is false }` 你用if的情况是没有限制的,包括猜一个秘密字母是否正确,在游戏中设定一个高分数,决定哪张扑克牌更大和计算选举获胜者。下面的例子合约展示给你看如何检查一个银行账号的状态。 signTest.rho 比较符 现在你知道了如何使用if/else,这里还有很多比较符给你使用。 a > ba大于b么?a < ba小于b么?a == ba等于b么?a <= ba小于或者等于b么?a >= ba大于或者等于b么?a != ba不等于b么?这些操作符可以作用于数字或者字符串。字符串按照字典顺序排序,有点像字母表排序。但是小心!如果你用一个数字与一个字符串比较,它会是另一个停止的"process"。 下面哪个是对的? 4 < 3"b" < "a"5 <= 6"hello" != "hello"布尔操作符 Rholang也有传统的布尔操作符, AND, OR, 和 NOT。语法是 当a和b都是真的,a and b是真的当a或b都是真的,a and b是真的当a是假的 ,not a是真的stdout!(true and true)会输出什么?? truefalse都不是; 非法语法stdout!(not true)会输出什么? truefalse都不是; 非法语法stdout!((not not true) or false)会输出什么? truefalse都不是; 非法语法练习 写一个合约告诉调用的人他们是否有资格投票。你必须达到一定的年纪和在一个规定的国家内才能投票。你可以选择年龄和国家。我可以通过并行@"canIVote!("Nigeria", 30)"来使用合约。 练习 上面的合约指适用于一个特定的国家。用我们学过的工厂来创建出有各种资格的检查者。创建一个投票年龄为18岁的加拿大的检查者,用@"checkerFactory"!(canadaChecker, "Canada", 18)。然后用代码canadaChecker!("Estonia", 41)测试一个41岁的爱沙尼亚人他是否符合加拿大的投票资格。 提示:他不能在加拿大投票。 本文来源:RChain —- 编译者/作者:RChain 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
区块链技术 | Rholang(第10课):对象功能
2020-02-23 RChain 来源:火星财经
LOADING...
相关阅读:
- KKRChain打造新一代价值流通的信任网络2020-10-29
- CasperLabs集成Chainlink保证数据的安全性和可靠性2020-10-23
- CasperLabs与Chainlink合作获得强大的数据安全性和可靠性保证。2020-10-23
- 区块链健康应用将COVID-19数据私有化,但安全性值得关注2020-10-15
- Ledger钱包公司通过官方安全审核2020-10-10