博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GO的部分总结~
阅读量:6173 次
发布时间:2019-06-21

本文共 2983 字,大约阅读时间需要 9 分钟。

package mainimport (    "fmt"    "math")var f int = 1      /*全局变量允许 声明但是不使用*/const AGE int = 25 //定义常量const SEX = "man"  //定义常量const ( //枚举类型    Unknow = 0    Female = 1    Male   = 2    CC     = "lalalla"    D                //枚举特效 D的值会和CC一样 我自己理解为枚举的上下继承,    L      = len(CC) //可以使用系统内置函数 否则编译不过)//定义结构体type Circle struct {    radius float64}type Books struct {    title  string    author string    bookid int    url    string}//iota //丝毫 极少 通常用于否定句 不是好词 iota标志枚举声明的数量 从0开始 不好理解的概念哦~func main() {    fmt.Println("hello world22");    var a int = 1 /*var 声明变量 a是int*/    a += 2    c := 2                     /*以省略var的方式声明变量c 并且类型自动判断!这种不带声明格式的只能在函数体中出现*/    var b string = "iloveyou!" /*声明字符串变量不能用单引号!*/    var d bool                 /*局部变量变量声明不使用也会报错~~*/    e, f := 5, 7               /*并行赋值*/    f, e = e, f                //交换值    fmt.Println(a, c, b, d, e, f)    _, f = e, f //抛弃e    println(f, e)    println(AGE, SEX)    if AGE > 10 {        println("大于10", max(1, 3))        g, h := swap("one", "two")        println(g, h) //two one        swap2(&g, &h) //函数是引用传递 用&传参        println(g, h) //one two    } else {    }    //这样声明方式不能在函数外声明    getR := func(x float64) float64 {        return math.Sqrt(x)    }    println(getR(9))    // 声明结构体    var i Circle    i.radius = 10;    println(i.getArea())    var arr0 [10] int                        //声明长度为10的空数组 定义变量长度类型    var arr = [4]int{1, 2, 3, 4}             //已知长度的数组声明    var arr1 = [...]int{1, 2, 3, 4, 5, 5, 6} //不确定长度数字声明 推荐    println(arr[3])    println(len(arr1))    arr0[0] = 1    var arr2 [3][4] int //多维    arr2[0][0] = 1    var arr3 = [3][4]int{ //这个语法不太熟悉        {1, 2, 3, 4},        {1, 2, 3, 4},        {1, 2, 3, 4},    }    println(arr3[0][0])    var ip *int  //int类型空指针 nil    println(ip)  //空指针 nil    ip = &a      //空指针的赋值    println(ip)  //访问ip的地址    println(*ip) //访问ip的值    //行内赋值方法用处还挺多呢!    ss := Books{title: "你的名字", author: "杨森", url: "http://www.baidu.com/", bookid: 12}    //格式化打印go的结构体    fmt.Printf("%+v", ss)    struct1(ss)    //定义切片 未指定长度的数组    //初始化    ii_s := make([]int, 3, 5) //第三个参数是容量    p_s(ii_s)    var numbers []int    if (numbers == nil) {        fmt.Println("numbers为空")    }    p_s(numbers)    //for range可以遍历数字 map等~    nums := []int{1, 2, 3, 4}    for i, num := range nums {        fmt.Println(i, num)    }    fmt.Printf("%d的阶乘是%d", 10, fac(10))    //接口 多个方法的封装}//递归自己调用自己 阶乘~func fac(n uint64) (result uint64) {    if (n > 0) {        result = n * fac(n-1)        return result    }    return 1}func p_s(x []int) {    fmt.Printf("len=%d, cap=%d,slice=%+v", len(x), cap(x), x)}func max(n1, n2 int) int {    return n1 + n2}/**返回多个值 接收的时候需要使用并行赋值 */func swap(s1, s2 string) (string, string) {    return s2, s1}//引用传递不用使用返回值和并行赋值接收 方便一点func swap2(s1 *string, s2 *string) {    var tmp string //声明中间变量    tmp = *s1    *s1 = *s2    *s2 = tmp}//定义方式暂时不动~~~func (c Circle) getArea() float64 {    return 3.14 * c.radius * c.radius}//结构体做参数func struct1(book Books) {    fmt.Printf("%+v", book)}

转载地址:http://qqtba.baihongyu.com/

你可能感兴趣的文章
topic4:Qt入门之常用qt控件认知之Button系列
查看>>
jstack:Java堆栈跟踪工具
查看>>
源码安装 python3
查看>>
获取当前fragment
查看>>
linux centeros 7.4 修改主机名
查看>>
关于程序员,你知道的有多少?
查看>>
Tomcat问题汇总
查看>>
由于未预料的错误,现在无法使用nautilus
查看>>
业界最有价值的Linux资料大全(200篇)
查看>>
Arraylist动态扩容详解
查看>>
%cd%及%~dp0批处理命令的详解
查看>>
MySQL数据库负载很高连接数很多怎么处理
查看>>
关于延迟加载(lazy)和强制加载(Hibernate.initialize(Object proxy) )
查看>>
Cent OS 环境下 samba服务器的搭建
查看>>
vCloud Director 1.5.1 Install Procedure
查看>>
hive 中的多列进行group by查询方法
查看>>
Cisco统一通信---视频部分
查看>>
nginx编译及参数详解
查看>>
VMware下PM魔术分区使用教程
查看>>
nslookup错误
查看>>