首页
学习
活动
专区
工具
TVP
发布

第二讲 智能合约 solidity 语言学习笔记以及学习心得

2018-03-15 星期四

正月廿八戊戌年 【狗年】乙卯月 丙午日

宜: 嫁娶 冠笄 会亲友 安机械 纳财

忌: 开市 造屋 治病 作灶

我是花夏,今天是智能合约第五天,今天学习中心更新了第二讲视频,所以进入了第二讲课程,刚刚看完了第二遍,大致有了个了解,其中也讲解了很多知识,为了避免丢失,我还是做一个笔记记录下。

合约中可以书写一个构造函数,这个构造函数是在合约创建就会自动执行的,比如将创建者的address存起来作为后面判断是否是创建者。

错误检测

使用在程序运行时,查看运行时是否错误

使用在程序运行时,查看输入时是否错误

数组

静态数组,运行时长度是不能被改变的

动态数组, 运行时长度是可以被改变的

成员

长度

向尾部添加元素,只能在动态数组中使用

定义一个自定义变量,类似于的对象?

循环

循环, 和其他语言循环一模一样

循环

删除一个成员,我发现,数组一个元素后,并不是把元素删除,而是空白掉,后面元素不会跟上,私认为这个设计太逗了,这点记下,要去源码提交代码了。

指代任意类型的变量

var (employee, index) = _findEmployee(employeeId); // 表示将_findEmployee函数查找到对应 // employeeId地址的employee和index返回值赋给(employee, index)

可视度

:外部函数是合约接口的一部分,这意味着它们可以从其他合约调用, 也可以通过事务调用。外部函数f不能被内部调用(即 f()不执行,但this.f()执行)。外部函数,当他们接收大数组时,更有效。

:公共函数是合约接口的一部分,可以通过内部调用或通过消息调用。对公共状态变量而言,会有的自动访问限制符的函数生成。

:这些函数和状态变量只能内部访问(即在当前合约或由它派生的合约),而不使用(关键字)。

:私有函数和状态变量仅仅在定义该合约中可见, 在派生的合约中不可见。

中函数默认的可视度为,针对一个函数返回值为自定义的,期末人度改为才不会报错

数据存储

永久性空间,也即是在区块链上

临时空间,程序运行完后,所占用的控件就会被释放掉

类似于

强制规定

memory`

本地变量:

默认

状态变量:

输入参数:

和C++的指针很相似

规则

相同储值空间变量赋值: 传递(EVM上的内存地址)

不同储值空间变量赋值: 拷贝

这点特别重要也特别饶,估计会有很多漏洞出现哦,想想C++的指针那是让多少人脑疼的东西

温馨提示:

1. 如果后面时间充裕,我会写好solidity工具通过github开源的,我的github地址:

https://github.com/huarxia

2. 另一个有意思还有前景的项目正在酝酿中,需要大量技术等等人员,有兴趣的关注公众号或者github

关注公众号回复so5获取源码链接及漏洞预测

分享完毕, 荆轲刺秦王~~

我的ENS打赏地址: huarxia.eth

我的github地址:https://github.com/huarxia

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180315G1P3X300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券