zoukankan      html  css  js  c++  java
  • 混个脸熟 -- go

    一、第一个项目:hello world

    src/day1/example1/main.go

    package main
    
    import "fmt"
    
    func main(){
    	fmt.Println("hello world")
    }
    

    运行命令: go run day1/example1
    输出结果:hello world

    解释:

    package main  // 声明包名
    
    import "fmt" // 导入fmt包, go 的标准库里面的fmt,你可以在goroot/src 看到这些包
    
    func main(){ // main函数,一个项目有且仅有一个main函数,也就是程序入口和C语言一样
    	fmt.Println("hello world") // 使用fmt包的Println 函数
    }
    

    二、go的注释

    package main
    
    import "fmt"
    
    func main(){
    	
    	num := 12  
    	// 我是单行注释
    	fmt.Println(num)
    	/*
    	这里有一个num:=12 这是go 语言的变量简短声明方式
    	当然你也可以
    	var num int
    	num = 12
    	变量的下面会说
    	
    	这是多行注释
    	 */
    }
    

    三、变量的声明方式

    2.1 全局变量

    src/day1/example2/main.go

    package main
    
    import "fmt"
    
    var num int  // 全局变量在main函数外声明
    var num1 int = 12 // 全局变量声明 + 赋值
    //num2 := 12 // 非法的
    
    // 优雅的变量声明
    var (
    	name string
    	obj string
    	sex int
    )
    func main(){
    	num = 12 // 赋值
    	age := 26 // 简短声明 常用,main 函数内的局部变量
    	fmt.Println(age)
    
    	for i:=0;i<5;i++{  // for 循环内的变量i 是局部的
    		fmt.Println(i)
    	}
    	//fmt.Println(i)
    }
    

    2.2 局部变量

    src/day1/example3/main.go

    package main
    
    import "fmt"
    
    
    func main(){
    	num1 :=22 // main 函数中的局部变量
    	num2 :=33
    	s := sum(num1,num2) // main 中的局部变量 与 sum 函数中的局部变量无关
    	fmt.Print(s)
    }
    
    func sum(n1,n2 int)int{
    	s := n1 + n2 //sum函数中的局部变量
    	return s
    }
    
    

    四、go语言强大之处

    src/day1/example4/main.go

    package main
    
    import (
    	"fmt"
    	"time"
    )
    
    func main(){
    	for i:=0;i<10000;i++{
    		// go 关键字 可以开一个协程,且go协程是并行执行的,记住是并行哦,不是并发
    		// 协程 在go中应该叫 goroutine
    		go func(m int) {
    			time.Sleep(2 * time.Second) // 睡了2秒
    			fmt.Println(m)
    		}(i)
    	}
    
    	time.Sleep(3 * time.Second)
    	fmt.Println("3秒内1~10000 的数必然会被全部打印出来")
    }
    /*
    go func(m){}(i)
    
    相当与
    函数(){
    	执行代码
    }
    go 函数()
    
    //只是两步并一步了
    
     */
    

    五、注意

    1、在go开发阶段常用go run 命令,上线后需要go build 编译
    2、在go中 src中一个文件夹最好是一个项目.(上面的测试代码中我是src/day1下每一个文件夹都是一个项目,因为每一个文件夹都是main包)
    
  • 相关阅读:
    hdu 5072 Coprime (容斥)
    洛谷 P1411 树 (树形dp)
    Tr/ee AtCoder
    sys.path
    uname
    sys.platform
    Eclipse Basic
    Eclipse Color Theme
    Pydev
    scons
  • 原文地址:https://www.cnblogs.com/xiaobaiskill/p/10575052.html
Copyright © 2011-2022 走看看