zoukankan      html  css  js  c++  java
  • golang 学习笔记 --基本类型

    字符串值表示了一个一个字符值的集合,在底层,一个字符串值即一个包含了若干字节的序列,长度为0的序列与一个空字符串对应。字符串的长度即底层字节列中字节的个数。

    字符串值是不可变的,对字符串的操作只会返回一个新的字符串,而不会改变原字符串并返回。

    只有基本类型及其别名类型才可以作为常量的类型

    数组的长度是数组类型的一部分。类型声明中的数组长度不同,即使数组类型的元素类型相同,他们也是不同的类型。

    数组:长度不可变

    数组零值: 一个不包含任何元素的空数组。

    var ipv4 = [...]uint8{192,168,0,1}

    切片:长度可变,引用类型,零值的长度与容量都为0

    var ips = []string{"192.168.0.1","192.168.0.2"}

    ips.append("192.168.0.3")

    ips = make([]string,100)  

    fmt.Println(len(ips))  //100

    fmt.Println(cap(ips))   //100

    字典:其官方称谓是map,引用类型,零值是nil,零值的长度为0

    var ipSwitches = map[string]bool{}

    ipSwitches["192.168.0.1"]=true

    delete(ipSwitches,"192.168.0.1")

    函数与方法

    在go中,函数是一等类型,可以将其当做一个值来传递和使用。

    函数可以没有参数列表,也可以没有结果列表,但空参数列表必须保留括号,而空结果列表可以不用

    eg: 

    func printTab(){

    ...//省略

    }

    参数列表中参数必须有名称,结果列表中结果名称可有可无

    如果函数声明的结果是有名称的,则return关键字后面就不用追加任何东西了

    eg:

    func divide(dividend int,divisor int)(result int,err error){
    	if divisor == 0{
    		err = errors.New("division by zero")
    		return
    	}
    	result = dividend/divisor
    	return 
    }


    接口:定义了一组行为,其中每个行为都由一个方法声明表示。(方法声明只有方法签名而没有方法体)
    eg:
    type Talk interface{
      Hello(userName string)string
      Talk(heard string)(saying string, end bool, err error)
    }

    只要一个数据类型的方法集合中包含了Talk接口声明的所有方法,那么它就是Talk接口的实现类型。

    结构体:值类型,其零值不是nil


  • 相关阅读:
    结对第一次—原型设计(文献摘要热词统计)
    第一次作业-准备篇
    201771010135杨蓉庆《面向对象程序设计(java)》第二周学习总结
    杨蓉庆201771010135《面向对象程序设计(java)》第一周学习总结
    2019 SDN阅读作业
    第01组 Alpha冲刺 (2/4)
    2019 SDN上机第3次作业
    第01组 ALPHA冲刺(1/4)
    2019SDN上机第二次作业
    2019 SDN上机第1次作业
  • 原文地址:https://www.cnblogs.com/saryli/p/11634194.html
Copyright © 2011-2022 走看看