分享
  1. 首页
  2. 文章

神奇的go语言(高级应用)

feixiaoxing · · 4358 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。


【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】


其实有了上一篇的基本语法,我们就可以做一些简单的事情,比如说文件服务器。或许大家有点不相信,没关系。下面开始用代码来说明问题,其实整个代码的内容不会超过十行。

package main
import "net/http"
func main() {
 h := http.FileServer(http.Dir("/home"))
 http.ListenAndServe(":8888", h)
}
有了上面的代码,直接输入go run share.go。说了这么多,大家可以继续看go语言下的高级应用是怎么使用的。

(1)并发运行

package main
import "fmt"
import "time"
func show() {
 for {
 fmt.Print("child ");
 time.Sleep(10000)
 }
}
func main() {
 go show()
 for {
 fmt.Print("parent ")
 time.Sleep(10000)
 }
}

(2)channel通信

package main
import "fmt"
func show(c chan int) {
 for {
 data := <- c
 if 1 == data {
 fmt.Print("receive ")
 }
 }
}
func main() {
 c := make(chan int)
 go show(c)
 for {
 c <- 1
 fmt.Print("send ")
 }
}

(3) 多channel访问

package main
import "fmt"
import "time"
func fibonacci(c, quit chan int) {
 x, y := 1, 1
 for {
 select {
 case c <- x:
 x, y = y, x+y
 case <- quit:
 fmt.Println("quit")
 return
 }
 }
}
func show(c, quit chan int) {
 for i := 0; i < 10; i ++ {
 fmt.Println(<- c)
 }
 quit <- 0
}
func main() {
 data := make(chan int)
 leave := make(chan int)
 go show(data, leave)
 go fibonacci(data, leave)
 for {
 time.Sleep(100)
 }
}




有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:feixiaoxing

查看原文:神奇的go语言(高级应用)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
4358 次点击
1 回复 | 直到 2025年05月11日 10:06:49
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏