zoukankan      html  css  js  c++  java
  • go语言基本语法

    1 类型系统

    1.1 struct

    func new(t Type) *Type

    s := new(Student)

    new返回的是一个指针类型。

    struct可以由匿名成员。

    type man struct {

        sex string

    }

    var man1 = new(man)

    man1.age=11

    1.2 变量的声明

    1.2.1 使用var关键字声明

    var a string;//声明一个string类型的变量a

    1.2.2 不用var关键字

    a := "hello"; //使用:=号就可以不用var关键字

    这个时候编译器自动推断定义的变量的类型。

    2 数据结构

    数组

    切片

    映射

    第一,创建映射

    dict := make(map[string]string)

    第二,初始化映射

    dict := map[string]string{"red":"#da1337", "orange":"#e95a22"}

    3 go函数

    3.1 go函数的定义

    func 方法名(参数列表) 返回值 {

        定义

    }

    go函数可以返回多个返回值,调用函数的时候按照先后次序赋值即可。 

    3.2 defer函数

    第一,defer函数在主函数体执行完之后执行;

    第二,多个defer函数按照后进先出的顺序执行;

    4 go方法

    go方法就是在func关键字和方法名之间显示的声明了一个this关键字。

    go不是面向对象的语言,但是它却通过go方法提供了类似对象的功能。java中提供了一个this指针,go没有,它要求在定义方法的时候显式的将这个this声明出来,这个声明放在func关键字和方法名之间。如果是值的话,那么只是调用者的副本,调用者本身不会被改变;如果是指针的话,那么调用者本人,调用者本身会被改变。

    5 并发

    5.1 goroutine

    gorouting直接在声明处开始执行。

    gorouting可以理解为go语言层面的线程,它使得并发变成变得简单。go语言自己有一个gorouting的调度器,从而实现并发。

    默认是一个逻辑处理器,一个逻辑处理器可以理解为一个物理处理器。

    5.2 通道

    gorouting发送消息给通道,然后在主程序中获取消息。

    6 特殊语法

    go每行是一条语句,不需要分号。

    7 循环

    7.1 for循环

    第一种,for init; condition; post {}

    for a := 0; a < 10; a++ {
          fmt.Printf("a 的值为: %d ", a)
       }

    这个和java的一样,只是没有括号。

    第二种,range格式对slice、map、数组和字符串进行迭代循环

    for key, value := range oldMap {

        newMap[key] = value

    }

    8 go的包

    第一,import的是一个包,并不是一个文件,多个文件可以属于同一个包,这个由文件头的package指定包名;

    第二,import时,路径一直到该文件的目录为止,该文件的目录名和该文件的包名相同;

    第三,使用包的函数时,用包名+函数名的方式使用;

    9 类型断言

    9.1 什么是类型断言

     所谓类型断言就是断言一个接口变量的类型,返回两个值,断言的布尔值和变量的具体值。

    9.2 类型断言可以用来做什么

     当我们只知道接口变量而不知道对象的具体的类型的时候,可以用类型断言获取接口变量下面具体的类型的值。

    10 不妨将golang当成一个面向对象的语言来使用

    抛弃golang的闭包,将之当成一种面向对象的语言来使用还是挺方便的。

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 阮小二买彩票
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 企业奖金发放
    Java实现 蓝桥杯VIP 算法提高 企业奖金发放
    让程序后台隐藏运行
    只要你喜欢,并且可以养家糊口,就是好的
  • 原文地址:https://www.cnblogs.com/hustdc/p/11262548.html
Copyright © 2011-2022 走看看