zoukankan      html  css  js  c++  java
  • Go语言从入门到放弃(一) 变量/常量/函数

    HelloWorld

    我们先看看一个最简单的HelloWorld代码

    1 package main
    2 
    3 import "fmt"
    4 
    5 func main() {
    6    fmt.Println("Hello, World!")
    7 }

    这段代码可以在控制台输出 "Hello, World!"

    下面让我们来刨析一下此段代码

    第一行的 package main  定义了该程序的包名为 main ,main的功能同其它语言一样,都代表着程序的主要部分/入口,每一个应用都应该有一个main

    第三行的  import "fmt"  代指引入fmt模块,fmt模块作用是输入输出,同学们可以暂且把他们看作Python的Print,要注意的是Go语言中禁止引入模块而不使用,这是为了保证代码的可读性和简洁性.

    第五行开始 为构建一个名为main的函数,同Python类的main类似,当定义main后执行该模块会先执行main函数,当定义了init函数时会优先执行init初始化函数,Println函数也可以打印变量的值,此时不带引号.

    # 当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。  ---- 菜鸟教程

    #  Go语言中的多行注释是 /* */  单行注释是 // 

    Go语言中变量的定义使用

    Go语言的建立变量如下

    var sum int

    分三个部分来读

    新建变量  变量名  类型

    注意变量名要规避Go语言的关键字(关键字以后会整理)

    我们无法在函数外使用变量,会报错

    syntax error: non-declaration statement outside function body
    语法错误:函数主体之外的非声明语句

    当我们在函数内使用变量则正确

     1 package main
     2 
     3 import "fmt"
     4 
     5 var sum int
     6 
     7 func main()  {
     8     sum = 1997
     9     fmt.Println(sum)
    10 }

    导入包内的变量

     每个Go项目都由多个包组成,当我们想要在A包中调用B包内的变量,首先要保证已经导入A,其次要保证要导入的变量第一个字母大写

    我们引入math包,math.Pi是圆周率

    package main
    
    import (
        "fmt"
        "math"
    )
    
    //var sum int
    
    func main()  {
        //sum = 1997
        //fmt.Println(sum, rand.Intn(10))
        fmt.Println(math.Pi)
    }

    可以正常打印,但是当我们改成小p,则会输出错误

    cannot refer to unexported name math.pi
    无法引用未导出的名称math.pi

    函数的传参与返回

    package main
    
    import (
        "fmt"
    )
    
    func add(x int, y string) (int, string) {
        return x, y
    }
    func main()  {
        fmt.Println(add(1, "ad"))
    }

    我们来看这段代码,我们新建了一个函数为add,当我们需要传参时要指定参数的类型

    (x int, y string) 代表可接受两个参数,x是int类型,y是str类型,如果我们接受的x,y都是一个类型可以简写为 (x, y int)
    (int, string) 代表返回两个参数,第一个参数为int类型,第二个参数为str类型,返回时不可简写
    我们也可以直接写return,这样会将所有函数内变量传出

    package main
    
    import "fmt"
    
    func add(x, y int) (sum int) {
        sum = x + y
        return 
    }
    
    func main()  {
        fmt.Println(add(1, 2))
    }

    但是这样还是需要传出变量的名字,而且这样代码的可读性不是太好,所以我们不推荐这样使用

    变量的定义

    var语句可以同时将多个变量定义为一个类型

    package main
    
    import "fmt"
    
    func add(x, y int) (sum int) {
        sum = x + y
        return
    }
    
    var a, b, c bool
    
    func main()  {
        a = true
        fmt.Println(a, b, c)
    }

    此时一个var语句定义了 a,b,c 三个变量,同时定义为bool值

    又因为变量为空所以都是False

    我们在main中又将a赋值为True

    此时打印结果为

    true false false

    我们还可以在定义变量时赋予变量值

    package main
    
    import "fmt"
    
    func add(x, y int) (sum int) {
        sum = x + y
        return
    }
    
    var a, b, c bool = true, true, false
    
    func main()  {
        fmt.Println(a, b, c)
    }

    此时结果为

    true true false

    这种方式作用等同于

    package main
    
    import "fmt"
    
    func add(x, y int) (sum int) {
        sum = x + y
        return
    }
    
    var a=true
    var b=false
    var c=true
    
    func main()  {
        fmt.Println(a, b, c)
    }

    结果为

    true false true

    在函数内部我们可以不使用var定义变量,方法为

    package main
    
    import "fmt"
    
    func main()  {
        a := 1
        b := "ad"
        fmt.Println(a, b)
    }

    结果为

    1 ad

     

  • 相关阅读:
    129 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 02 懒汉式的代码实现
    128 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 01 饿汉式的代码实现
    127 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 02 单例模式概述 01 单例模式的定义和作用
    126 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 01 设计模式概述 01 设计模式简介
    125 01 Android 零基础入门 02 Java面向对象 05 Java继承(下)05 Java继承(下)总结 01 Java继承(下)知识点总结
    leetcode-----121. 买卖股票的最佳时机
    leetcode-----104. 二叉树的最大深度
    Json串的字段如果和类中字段不一致,如何映射、转换?
    Mybatis-Plus的Service方法使用 之 泛型方法default <V> List<V> listObjs(Function<? super Object, V> mapper)
    模糊查询
  • 原文地址:https://www.cnblogs.com/chnmig/p/9978722.html
Copyright © 2011-2022 走看看