Go语言入门(一)

时间:2020-03-01 00:23:18   收藏:0   阅读:49
Go语言入门(一)

Go语言简介

Go语言环境安装

第一个Go语言程序

package main

// package 表示该文件所属的包

// 导入包
import "fmt"

//行注释,可以注释单行
/*
块注释
可以注释多行
*/

// func 函数
//main 主函数名,主函数名有且只有一个,作为程序的主入口
// () 函数参数列表
// {} 函数体
// fmt.Println  打印
// hello world
func main01() {
    //Println:打印并换行
    fmt.Println("Hello World!")
    fmt.Println("哈哈哈哈")
}
GOOS=linux GOARCH=adm64 go build -o hello hello.go
GOOS=windows GOARCH=adm64 go build -o hello hello.go
- Linux下编译windows和mac可执行程序
GOOS=darwin GOARCH=adm64 go build -o hello hello.go
GOOS=windows GOARCH=adm64 go build -o hello hello.go
- Windows下编译Linux和mac可执行程序
GOOS=darwin GOARCH=adm64 go build -o hello hello.go
GOOS=linux GOARCH=adm64 go build -o hello hello.go

变量和常量

变量

package main

import "fmt"

var (
    h1 = 122
    h2 = 144
)

var (
    a,b,c = 1,2,"abc"
    d = 999
)

func Variables() {
    //变量定义的格式
    // var 变量名 数据类型
    var h1 int = 186
    var h2 int= 163
    h3 := 144
    fmt.Println(h3)
    fmt.Println(h1 - h2)
    var main int = 1
    fmt.Println(main)
}

func calCycleSqure() {
    // 计算圆的面积和周长
    /*
    面积=PI*r*r
    周长=2*PI*r
    %T是一个占位符,表示输出一个变量对应的数据类型
     */
    PI := 3.14
    r := 2
    fmt.Printf("%T\n",PI)
    fmt.Printf("%T\n",r)
    // 圆的面积
    s := PI * float64(r) * float64(r)
    // 圆的周长
    l := 2 * PI * float64(r)
    fmt.Println("面积",s)
    fmt.Println("周长",l)
    fmt.Printf("面积:%.2f\n" ,s)
    fmt.Printf("周长: %.2f\n",l)
    println("aaaa")
}

func mutiValue() {
    // 多重赋值
    /*
    多重赋值可以是不同类型的变量,但是值的个数必须要和变量的个数保持一致
     */
    var a,b,_ int = 3,4,5
    c,d := 123,"sss"
    fmt.Println(a,b)
    fmt.Println(c,d)
}

func exchangeValue() {
    a :=  10
    b := 20

    // 使用临时变量交换
    //tmp := a
    //a = b
    //b = tmp
    //fmt.Println(a,b)

    // 使用运算符交换两个变量的值
    //a = a + b
    //b = a - b
    //a = a - b
    //fmt.Println(a,b)

    // 异或操作
    //a = a ^ b
    //b = a ^ b
    //a = a ^ b
    //fmt.Println(a,b)

    //多重赋值交换
    a,b = b,a
    fmt.Println(a,b)
}

func constDefine() {
    // 常量的定义格式,常量值不能用于计算,
    /*
    const 常量名 数据类型 = 值
     */
    const A int  = 100
    const B = "aaa"
    fmt.Println(B)
    a:=100
    // & 是取内存地址运算符,获取变量的内存地址   内存地址是一个无符号十六进制整型数据格式
    // & 不允许获取常量的内存地址
    println(&a)
    fmt.Println(A)
}

func main()  {
    Variables()
    //calCycleSqure()
    //mutiValue()
    //exchangeValue()
}

常量

func constDefine() {
    // 常量的定义格式,常量值不能用于计算,
    /*
    const 常量名 数据类型 = 值
     */
    const A int  = 100
    const B = "aaa"
    fmt.Println(B)
    a:=100
    // & 是取内存地址运算符,获取变量的内存地址   内存地址是一个无符号十六进制整型数据格式
    // & 不允许获取常量的内存地址
    println(&a)
    fmt.Println(A)
}

常量集与iota枚举

常量声明可以使用iota常量生成器初始化,它用于生成一组以相似规则初始化常量,但是不用每行都写一遍初始化表达式
注意:

func constSet() {
    const(
        a = iota
        b
        c
        d
        e = "hello"
        f
    )
    const(
        a1 = "word"
        b1 = iota
        c1,d1 = iota,iota
    )
    fmt.Println(a,b,c,d,e,f,a1,b1,c1,d1)
}

Go语言命名规则

标准输入与输出

标准输入

标准输出

func inputOutput() {
x,y := 0,0
fmt.Scan(&x,&y)
fmt.Print(x,y)
name,score := "",0
fmt.Scanf("请输入你的姓名%s\n",&name)
fmt.Scanf("请输入你的成绩%d\n",&score)
fmt.Printf("姓名%s,成绩%d\n",name,score)
job := ""
fmt.Scanln(&job)
fmt.Println(name,score,job)
}

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!