Skip to content

Latest commit

 

History

History
93 lines (56 loc) · 4.16 KB

2018.3.14.md

File metadata and controls

93 lines (56 loc) · 4.16 KB

每日优质内容复盘-2018.3.14

【重要通知】

@雅珣班长:

各位同学,北京时间今晚10点截止交作业喔,第一次作业希望大家认真对待,咱们的课程才刚刚开始
三次不交作业会直接被开除,大家加油

【优质课程资源】

【课程答疑】

Q1. @蒋雨辰:请问助教为什么用view的时候会报错呀?

Q2. @杨楫:想问下每个contract都有自己的address,但是如果某一天有两个contract的hash collision了怎么办?

Q3. Create合约后合约方法未显示在右边区域?

  • @何智华-助教: 有用 Microsoft Edge 浏览器的同学注意下,remix 在这个浏览器中有不兼容的地方,比如 create 合约成功后,合约方法并未显示在右边区域。如果遇到类似的问题,建议使用 Chrome 浏览器

Q4. 怀达;我在这个方法中更改了地址 但是之后调用打印地址的函数时 发现地址还是0地址,没有保存住 ,请问大家知道什么原因吗?

function changeEmployeeAddress(address a) view returns(address){
    require(ownerAddress == msg.sender);
    employeeAddress = a;
    return employeeAddress;
}
  • @顺达-助教:view的问题,把view去掉就可以了。view是用在没有对状态进行修改的函数上。加了view的函数,调用时所做的修改不会对合约的状态产生影响,只是起一个查看状态的作用。

  • @陈垚文-助教:

Q5. @Ray: 一个合约从原代码、编译、在EVM中初始化,运行,被别人调用或自已完成事务,事务结束后,整个过程的数据流。哪些数据是在EVM的内存中,哪些是写在区块链中。

Q6. @王信平:address owner; address employee; 这两个地址有什么区别?

  • @荀辰龙: 两种身份,一个是发工资的(给合约里添加资金),一个是领工资的

Q7. 刘金伟:这段代码执行正常,可是代码中并没有给employee赋值,为什么不报错呢?

  • @姚子豪: 这个跟普通程序的初始变量一个意思。你定义了一个int类型,没有初始化,系统会默认为0。employeeAddress类型,没有初始化,默认值就是 0x0000**0

Q8. 刘金伟:如果我向一个胡乱写的地址转账 会出现什么情况revert 还是怎样

  • @陈垚文: 只要地址在2^256范围内,应该都是可以转账的

Q9. 张晓:有没有检测地址有效性的函数?

exports.isValidAddress = function (address) {
  return /^0x[0-9a-fA-F]{40}$/.test(address)
}

【打卡干货集锦】

昨日话题

你觉得区块链可以应用在生活中的哪些领域或实际场景呢?理由又是什么呢?

优质回答