首页 > 其他 > 详细

golang:简介

时间:2019-07-08 10:14:25      阅读:82      评论:0      收藏:0      [点我收藏+]

golang语言特性:

1. 垃圾回收
    a. 内存自动回收,不需要开发人员管理内存,开发人员专注业务实现
    b. 只需要new分配内存,不需要释放
    
2. 天然并发
    a. 从语言层面支持并发,非常简单
    b. goroute,轻量级线程,使创建成千上万个 goroute 成为可能
    c. 基于CSP(Communicating Sequential Process)模型实现

第一个go程序: helloworld.go

package main     
// go每一个文件都属于一个包;package 关键字说明这个文件是一个包;想让这个包成为一个可执行文件,包名必须为 main 

// 导入输出的包
import(        
    "fmt"
)

// go 语言的代码被编译时,每行最后会自动加一个 “;”

// 定义变量a 为整型,变量b为整型;规定返回值 也是 整型
func add(a int,b int) int {
    var sum int     // 定义一个变量 sum 为整型
    sum = a + b
    return sum
}

// go 代码执行的时候会从 main 函数开始执行; main 是入口函数
func main(){
    var c int
    c = add(100,200)    // 定义的变量 c 必须有被引用才能通过编译
    fmt.Println("add(100,200)=", c)

    fmt.Println("hello world")
}

goroute 测试程序:

helloworld.go

package main     

import(        
    "time"        // 导入时间函数
)

func main() {
    for i := 0; i < 100; i++ {        // sum := a +b    // sum :=  这种定义变量的方式会根据 = 后面的变量 自动把 sum 定义成 int 整型
        // 调用 test_goroute 函数
        go test_goroute(i)        // test_goroute 函数和  main 函数 都在 main 这同一个包里面,此时包名可以省略
        // go test_goroute(i) 是并发运行的
    }
    
    // 主函数运行在一个 goroute 里面,然后又起了100个goroute;主进程这个 goroute 要等待 那100个子进程执行完
    time.Sleep(time.Second)        // sleep 1 秒
}

test.go

package main    
// test.go 文件也是在 main 这个包里面

import (
    "fmt"
)

func test_goroute(a int) {
    fmt.Println(a)
}

终端显示如图:

技术分享图片

 

golang:简介

原文:https://www.cnblogs.com/neozheng/p/11148974.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!