• 初识golang


    golang的变量和常量

    //函数外声明并初始化变量
    var test //错误
    var test = "test" //ok,不需要写分号,不需要写类型
    var test string = "test" //ok,写不写类型都OK
    test := "test" //错误,在函数外部不可以用:=
    //解释:":="这个符号是自动匹配类型,比如 a := 100,会把右边的类型和值传递到变量a,也就是说a的类型是int,值是100
    //函数内声明并初始化变量
    var testFunc = func() {
        var test2 //错误
        var test = "test" //ok
        var test1 string = "test1" //ok
        test3 := "test3" //ok
        fmt.Println(test, test1, test2, test3)                                                                                                          
    }
    //变量块
    var (
    ErrParamError = "param error"
    ErrParamEmpty = "param empty"
    )

    常量

    const test//错误,没有初始化
    const test = "test" //ok
    const test string = "test" //ok
    const test := "test" //错误
    //常量块
    
    const (
        test = "test"
        Pi = 3.13
    )
    

    iota用法:iota默认为整型的空值0,之后的元素的值是它前一个元素的值+1

    const (
        Monday = iota
        Tuesday
        Wednesday
        Thursday
        Friday
        Saturday
        Sunday
    )
    
    func main() {
        fmt.Println(Monday, Tuesday, Sunday)
    }
    
    输出:
    0 1 6

     另外注意到:包的全局变量是可以只定义但是不使用的,而函数内的临时变量是定义后必须要使用的(作为参数,右值,或者右值的一部分)

    //这段代码是OK的
    var test = "test"
    
    func main() {                                                                                                          
    }
    
    //这段代码是错误的
    func main() {
        var test1 = "test1"
        //fmt.Println(test1)                                                                                                                 
    }
    
    //加上fmt是ok的
    func main() {
        var test1 = "test1"
        fmt.Println(test1)                                                                                                                 
    }

     数组:

    代码
    package main
    import "fmt"
    
    func main() {
        arr := make([]string, 5, 10)                                                                                                      
        fmt.Println(len(arr), cap(arr))
        return
    }
    输出:
    5 10
    能看出来数组arr的长度是5,容量是10.这两个数字意味着什么呢?
    
    代码
    package main
    
    import "fmt"
    
    func main() {
        var temp string
        arr := make([]string, 5, 10)
        fmt.Println(len(arr), cap(arr))
    
        arr[0] = "string0"
        arr[1] = "string1"
        arr[5] = "string5"                                                                                                                
        return
    }
    输出:
    5 10
    panic: runtime error: index out of range
    len(arr)=5意味着数组的最大长度是5,arr[5]这样的变量是不被允许的
    
    cap(arr)=5不知道是啥意思

     值类型,指针类型

    package main
    import (
        "fmt"
    )
    
    var _ = fmt.Sprintf("")
    
    func main() {
        var a int = 10
        fmt.Println(a)
        changeValue1(a)
        fmt.Println(a)
    
        fmt.Println(a)
        changeValue2(&a)
        fmt.Println(a)
    }
    
    func changeValue1(a int) {
        a++ 
    }
                                                                                                                                          
    func changeValue2(a *int) {
        *a += 1
    }
    
    输出:
    10
    10
    10
    11

     判断结构体是否被设置?

    思路1:判断其中的元素是否为空元素;思路2:是否可以字节判断变量为空,目前是用第一种方法

    package main
    import "fmt"
    
    type testStruct struct {
        Name string
        Age int
    }
    
    func main() {
        var t testStruct
        //t.Age = 100
        if t.Name == "" {
            fmt.Println("name is empty")
        } else {
            fmt.Println("a" + t.Name + "a")
        }
    }

      .....

  • 相关阅读:
    SilverLight学习篇——框架搭建及实例讲述(huangyezi)
    MVVMLight学习
    MVVMLight学习篇——WPF MVVMLightToolkit(李凤桐)
    MvvmLight学习篇—— Mvvm Light Toolkit for wpf/silverlight系列(子林)
    Erro:Namespace http://schemas.microsoft.com/expression/blend/2008 is not resolved.
    MEF学习篇——MEF程序设计指南(Bēniaǒ)
    Error:The tag 'Label' does not exist in XML namespace 'http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk'.
    silverlight页面间常用跳转模式
    UIViewController的生命周期以及相互之间通信
    解析:如何快速掌握SQL Server的锁机制
  • 原文地址:https://www.cnblogs.com/helww/p/4103882.html
Copyright © 2020-2023  润新知