golang程序的基本结构和基本数据类型

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

1.文件名,关键字和标识符
  1. 每个golang程序的源文件都是以.go为后缀结尾
  2. golang有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
  3. 标识符使用字母数字下划线,且必须以字母或下划线开头的字符串序列
    另外golang中还预定义了35个标识符
    append, bool, byte, cap, close, complex, complex64, complex12
    copy, false, float32, float64, imag, int, int8, int16, int32, int64, iota
    len, make, new, nil, panic, print, println, real, recover, string, true
    unit, unit8

2.一个最小的golang程序结构
    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("hello golang!")
    }
  1. package main申明了这个文件是属于main这个主包
  2. import "fmt"导入fmt包
  3. func main() {
    // 函数体
    }
    申明了主函数main

3.常量及其定义和使用
  1. 概念:常量是在整个程序的生命周期中其值不发生变化的一直量
  2. 常量的声明:声明一个常量使用关键字const定义紧接着是常量的名字
  3. 定义格式如下
    const identifer [type] = value
    const PI = 3.14
  4. Note:[type]用来说明常量的类型,例如
    const PI float64 = 3.14
    const STL string = "strings"

4.变量及其声明
  1. 概念:在程序运行过程中会发生变化的量
  2. 变量的一般声明:声明一个变量使用var关键字紧接着是变量的名字
  3. 一般的定义格式如下
    var variable_name [type]
    var condition string = "if a is not b"

5.类型零值
  1. 概念:如果声明了一个变量并且没对这个变量进行初始化赋值,golang会对该变量的类型赋予相应的类型零值,例如
    var b string // 零值为("")空字符串
    var c int // 零值为0
    ...

6.简短形式声明并初始化变量
  1. 使用简短声明变量时,变量的类型是有系统进行推断的,例如
    a := false
    str := "string"
    Note:(_)空白字符用于抛弃值,例如a, _, c = 1, 2, 3,数字2会被抛弃

7.init函数
  1. 概念:init函数是一个在每个包完成初始化后自动执行,并且执行优先级比main函数高
    func init() {//statement}

8.基本数据类型和运算符
  1. 布尔类型:布尔类型的的值只能是true或者false,两个类型相同的值可以使用==或者!=运算符来进行比较并获得一个布尔值,例如
    var vari = 10
    vari == 10
    vari == 5
    vari != 5

9.逻辑运算符

!, &&, ||


10.算术运算符

+,-,*,/,%


11.运算符优先级
    优先级            运算符
        7             ^, !
        6             *, /, %, <<, >>, &, &^
        5             +, -, |, ^
        4             ==, !=, <, <=, >=, >
        3             <-
        2             &&
        1             ||

12.字符串
  1. 概念:字符串是utf-8字符的一个序列

13.strings包
  1. 判断字符串的前缀和后缀
    HasPrefix(s, prefix) bool判断字符串s是否是以prefix开头
    HasSuffix(s, suffix) bool判断字符串s是否是以suffix结尾
    package main

    import (
        "ftm"
        "strings"
    )
    func main() {
        var str string = "https://www.golang.org"
        fmt.Println(strings.HasPrefix(str, "https:"))
        fmt.Println(strings.HasSuffix(str, ".org"))
    }

14.字符串包含
  1. Contains(s, substr, string) bool判断字符串s是否包含substr
    package main

    import (
        "fmt"
        "strings"
    )

    func main() {
        var str string = "hello golang"
        fmt.Println(strings.Contains(str, "he"))
    }

15.索引
  1. Index(s, substr string) int判断子字符串后字符在父字符串中出现的位置
  2. LastIndex(s, substr string) int返回字符串substr在字符串s中最后出现位置的索引
  3. 如果字符串ch是非ascii编码的字符,建议使用IndexRune函数来对字符进行定位IndexRune(s, substr string) int
    package main
    
    import (
        "fmt"
        "strings"
    )

    func main() {
        var str string = "oh my god!"
        fmt.Println(strings.Index(str, "o"))
        fmt.Println(strings.LastIndex(str, "my"))
        fmt.Println(strings.IndexRune(str, "层次"))
    }

16.字符串替换和统计字符串出现的次数
  1. Replace(str, old, new, n) stringn为-1时则替换所有字符串old为字符串new
  2. Count(s, str string) int统计str在字符串中出现的次数

17.字符串重复
  1. Repeat(s string, count int) string将字符串s重复count次,最后返回一个新的字符串

18.修剪字符串
  1. TrimSpace(s)剔除前后空白字符
  2. TrimLeft(s)剔除左边的某个字符
  3. TrimRight(s)剔除右边的某个字符

19.分割字符串
  1. Split(s, sep)指定字符进行分割

20.拼接slice到字符串
  1. Join(sl []string, sep string)将类型为string的slice使用分隔符来拼接组成一个字符串

that's all


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

本文来自:简书

感谢作者:孤风追影

查看原文:golang程序的基本结构和基本数据类型

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

633 次点击  
加入收藏 微博
上一篇:golang控制结构
下一篇:高并发原理
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传