小小心得:go的匹配多行字符串、channel的range用法和close的用法

  • go正则匹配多行字符串的一个正则式

(?s)\d+\)\s.*?\n\s*\n
`
1) 初始化页面元素未达到要求
  - Expected false
  - Failed: No 

2) 初始化页面元
  - Failed: No element found

3) 初始页e多行本框好
  - Expected fa
  - Failed: No element found using locator: By(

`
  • channel的range使用注意事项

cha := make(chan int,10)
for data:=range cha{
	// 只有close的时候range才不会继续循环获取管道数据
	fmt.Println(data)
}

这段代码会报错,因为cha没有输入数据,就读取数据造成死锁。修改代码如下:

cha := make(chan int,10)
close(cha)
for data:=range cha{
	// 只有close的时候range才不会继续循环获取管道数据
	fmt.Println(data)
}

当channel关闭的时候,没有数据就不再进行读取管道数据

  • channel的close()用法:因为关闭之后,<- channel有输出结果的,所以可以通过这个特性制作协程哨兵
posted @ 2019-10-13 23:40  Myuniverse  阅读(708)  评论(0编辑  收藏  举报