• Go基础入门


    语言结构

    package main
    
    import "fmt"
    
    func main() {
    	//这是一个简单的程序
    	fmt.Println("ccc")
    }
    

    1.初始化go项目

    go mod init 文件夹

    执行go代码
    go run xxx.go

    生成可执行二进制文件
    go build xxx.go
    **./xxx

    2.包声明

    package main
    必须在源文件中非注释的第一行指明这个文件属于哪个包

    3.引入包

    import “fmt”
    告诉编译器这个程序需要使用fmt包或函数

    4.函数

    func main()
    main函数是每个可执行程序所必须包含的,一般都是启动后第一个可执行函数(除了init)

    5.语句&表达式

    fmt.Println(...)
    可以将字符串输出,最后自动增加
    Print和Println 一样

    6.注释

    单行注释使用 //
    多行注释使用 /* */

    7. 标识符

    标识符是由多个字母数字下划线组成的序列


    当标识符(常量、变量、类型、函数名、结构字段)以一个大写字母开头,如Group1
    那么就可以被外部调用
    当标识符小写开头,则不可被外部调用

    8.字符串连接

    可以直接通过 + 连接
    fmt.Println("Google" + "Runoob")

    9.关键字或保留字

    25个关键字
    | break | default | func | interface | select |
    | case | defer | go | map | struct |
    | chan | else | goto | package | switch |
    | const | fallthrough | if | range | type |
    | continue | for | import | return | var |

    36个预定义标识符
    | append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
    | copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
    | int32 | int64 | iota | len | make | new | nil | panic | uint64 |
    | print | println | real | recover | string | true | uint | uint8 | uintptr |

    格式化字符串

    使用fmt.Sprintf 格式化字符串并赋值给新串

    func main() {
       // %d 表示整型数字,%s 表示字符串
        var stockcode=123
        var enddate="2020-12-31"
        var url="Code=%d&endDate=%s"
        var target_url=fmt.Sprintf(url,stockcode,enddate)
        fmt.Println(target_url)
    }
    

    数据类型

    类型 符号 描述 实例
    布尔型 bool 只可以是true或false
    数字类型 int/float 整型/浮点型/复数;uintptr无符号整型,用于存放一个指针
    字符串类型 String
    指针类型
    数组类型
    结构化类型
    Channel 类型
    函数类型
    切片类型
    接口类型(interface)
    Map 类型

    变量

    使用var关键词,可一次声明多个变量
    如果没有初始化(即指定值),则默认为0值

    var v_name v_type
    v_name = value
    var b,c int = 2,3
    

    休眠功能

    import "time"
    func main() {
    
    fmt.Println(1111)
    time.Sleep(time.Duration(2)*time.Second)
    }
    
    
  • 相关阅读:
    【原创】自己动手写工具----签到器[Beta 1.0]
    都2020了,还不好好学学泛型?
    ThreadLocal = 本地线程?
    从BWM生产学习工厂模式
    你还在用BeanUtils进行对象属性拷贝?
    JDK 1.8 之 Map.merge()
    Spring Boot认证:整合Jwt
    以商品超卖为例讲解Redis分布式锁
    如何从 if-else 的参数校验中解放出来?
    分布式全局唯一ID生成策略​
  • 原文地址:https://www.cnblogs.com/pyweb/p/15513961.html
Copyright © 2020-2023  润新知