当前位置: 首页 > news >正文

更换网站程序唯品会 只做特卖的网站

更换网站程序,唯品会 只做特卖的网站,做联轴器的网站,企业响应式网站建设生活所迫#xff0c;入门一下Go 很奇葩的第一点#xff0c;接口 package mainimport (fmt )// 定义一个接口 type Shape interface {Area() float64 }// 定义一个矩形类型 type Rectangle struct {Width float64Height float64 }// 矩形类型实现Shape接口的Ar…生活所迫入门一下Go 很奇葩的第一点接口 package mainimport (fmt )// 定义一个接口 type Shape interface {Area() float64 }// 定义一个矩形类型 type Rectangle struct {Width float64Height float64 }// 矩形类型实现Shape接口的Area方法 func (r Rectangle) Area() float64 {return r.Width * r.Height }// 定义一个圆形类型 type Circle struct {Radius float64 }// 圆形类型实现Shape接口的Area方法 func (c Circle) Area() float64 {return 3.14159265359 * c.Radius * c.Radius }func main() {// 创建一个矩形对象rectangle : Rectangle{Width: 4, Height: 5}// 创建一个圆形对象circle : Circle{Radius: 3}// 使用接口来计算不同形状的面积shapes : []Shape{rectangle, circle}for _, shape : range shapes {fmt.Printf(Area of the shape is: %.2f\n, shape.Area())} }gpt这么解释 Go语言中的接口实现是隐式的而不是明确的。这意味着你不需要显式声明一个类型实现了某个接口只要这个类型提供了接口中定义的所有方法它就被认为实现了该接口。这是Go语言的一种灵活而简洁的设计。 奇葩的第二点没有for in但是有range 奇葩的第三点数组的写法 func main() {rec : Rectangle{width: 2.0, height: 3.0}cir : Circle{radius: 2.0}shapes : []Shape{rec, cir}for index, shapes : range shapes {fmt.Println(index, shapes.Area())}}奇葩的第四点方法依靠方法名决定权限public or private 大写开头的方法为public可以被外部调用小写开头则为private不能被外部调用 ● 如果方法名以大写字母开头例如GetName则该方法是公开的可以在包外部访问。 ● 如果方法名以小写字母开头例如calculate则该方法是私有的只能在同一包内部访问不能在包外部访问。 package shapefunc Description(name string) string {return The person name is: name } func secretName(name string) string {return Do not share }4 . 奇葩第五点错误处理。这一点也是早有耳闻了。 func main() {resp, err : http.Get(http://example.com)if err ! nil {fmt.Println(err)//return}fmt.Println(resp)num : 5if inc, err : Increment(num); err ! nil {fmt.Printf(failed number: %v, error message: %v\n, inc, err)} else {fmt.Printf(increment successfully, num is %v \n, inc)} }func Increment(n int) (int, error) {if n 0 {return n, errors.New(error)}return n 1, nil }go最精彩的点Go routine 可以与另一个函数并发执行 func main() {go task()fmt.Println(main)time.Sleep(time.Second * 2)}func task() {fmt.Println(concurrent) }go channel在两个go routine之间传递数据。 写法也挺怪的。 package mainimport fmtfunc main(){c : make(chan string) // 创建channel 可以发送string类型的数据go func(){ c - hello }() // 发送端msg : -c // 接收端fmt.Println(msg) }让创建的goroutine发送数据 package mainimport (fmt )func main() {ch : make(chan string)go sc(ch)fmt.Println(-ch) }// sc函数只能发送数据给 channel不能接收数据 func sc(ch chan- string) {ch - hello }select等待多个channelselect case 只有一个会执行 select { case -channel1:// 从channel1接收到数据时执行的代码 case data : -channel2:// 从channel2接收到数据时执行的代码 case channel3 - value:// 将value发送到channel3时执行的代码 default:// 如果没有通道操作准备就绪执行的默认操作 }package mainimport (fmttime )func main() {ch1 : make(chan string)ch2 : make(chan string)go func() {time.Sleep(2 * time.Second)ch1 - Message from channel 1}()go func() {time.Sleep(1 * time.Second)ch2 - Message from channel 2}()select {case msg1 : -ch1:fmt.Println(msg1)case msg2 : -ch2:fmt.Println(msg2)} }
http://www.yutouwan.com/news/400849/

相关文章:

  • 网站怎么更改后台登陆密码网站设计中的事件是什么
  • 用ip地址做网站网站建设 台州
  • 分享网站模板信和财富网站开发
  • 网站开发合同 doc怎么自己做视频网站
  • 网站开发就业培训班免费红色ppt模板下载
  • 品牌网站建设的意义网站建设常规尺寸
  • 老徐蜂了网站策划书北京网络优化公司
  • 建站哪家好 discuz郑州那家做网站便宜
  • 网站关键字 怎么设置网站建设研究方法
  • 莆田建设局网站wordpress新建字段
  • 课程微网站开发技术wordpress4.4.1
  • 简述织梦网站上传步骤有什么做公众号封面图的网站
  • 做毕业设计哪个网站好应用软件开发包括什么
  • 松江外贸网站建设WordPress恶意扫描
  • 正在建设中的网站可算违规阿里云域名
  • 网站开发需要的软件德尔普网络做网站怎么样
  • 宿迁市建设局网站360建筑网怎么找回密码
  • 个人网站建设的流程怎么用dw做可上传文件的网站
  • 网站需求分市场推广渠道有哪些
  • 网站设计目标与背景互联网网站如何做流量统计
  • 推荐昆明做网站建设怎么仿别人的网站
  • 雄安建设工程信息网站旅游网站开发与建设论文
  • 学校网站首页制作中山网站建设多少钱
  • 网站被做跳转怎么办行业网站建设多少钱
  • 请人做网站 说我要求多建筑施工企业
  • 罗湖商城网站设计多少钱做外链的网站
  • 广州工信部网站查询网站为什么上传不了图片
  • 做招聘网站赚钱么做文学网站编辑的前景
  • 网站建设需要的资质wordpress谁开发的
  • 大连公司网站开发山东省住房和建设厅注册中心网站