• 变量、常量以及与其他语言的差异 - Go语言从入门到实战


    知识点

    1. 源码文件以_test结尾:xxx_test.go
    2. 测试方法名以Test开头:func TestXXX(t *testing.T){…}

    利用单元测试来写代码段,保存之后会自动运行程序返回结果,可以快速实践得到反馈。

    编写测试程序

    接下来练习一下,怎么使用Go语言的变量和常量,在练习中体会与其他语言的差异。来自云尔Websites CSDN博客。

    变量

    与其他主要编程语言的差异:

    1. 赋值可以进行自动类型推断,无需显式地声明变量的类型,编译器可以根据赋给变量的值来推断其类型。
      例如:var a = 10  // 编译器会推断出 a 的类型为 int
      
      • 1
    2. 在一个赋值语句中可以对多个变量进行同时赋值,通常被称为“多重赋值”。
      例如:a, b = 10, 20  // a 的值为 10,b 的值为 20
      
      • 1

    这些特性使得Go语言的代码更加简洁、紧凑,减少了冗余的类型声明,提高了代码的可读性。

    实现Fibonacci数列:
    package fib
    
    import (
    	"testing"
    )
    //实现数列1,1,2,3,5,8,13...
    func TestFibList(t *testing.T) {
    	// var a int = 1 //可以简写成 a := 1
    	a := 1
    	b := 1
    	t.Log(a)	//单元测试里使用t.Log(a)打印
    	for i := 0; i < 5; i++ {
    		t.Log(" ", b)
    		tmp := a
    		a = b
    		b = tmp + a
    	}
    }
    
    func TestExchange(t *testing.T) {
    	a := 1
    	b := 2
    	// tmp := a
    	// a = b
    	// b = tmp
    	a, b = b, a	//多重赋值,来自云尔Websites CSDN博客。
    	t.Log(a, b)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    常量

    与其他主要编程语言的差异:

    1. 快速设置连续值,Go语言中的切片(slice)提供了方便的方式来快速设置连续值。这是Go语言与其他语言的一个显著区别,因为其他语言可能需要使用循环或其他复杂的方式来实现相同的功能。来自云尔Websites CSDN博客。
    2. 常量类型:在Go语言中,常量的类型是在声明时确定的,并且无法在运行时更改。
    3. 常量命名规则:Go语言要求常量名称以大写字母开头,后续字母可以小写。
    4. 常量可见性:在Go语言中,常量的可见性是通过包级别的作用域来控制的。
    实现快速设置连续值
    package constant_test
    
    import "testing"
    
    const (
    	Monday = 1 + iota
    	Tuesday
    	Wednesday
    )
    
    const (
    	Readable = 1 << iota
    	Writable
    	Executable
    )
    
    func TestConstantTry(t *testing.T) {
    	t.Log(Monday, Tuesday)
    	//来自云尔Websites CSDN博客。
    }
    
    func TestConstantTry1(t *testing.T) {
    	a := 1 //0001
    	t.Log(a&Readable == Readable, a&Writable == Writable, a&Executable == Executable)
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    学习Go语言主要是多练,多找些代码段写写,不懂可以私聊咨询。

    欢迎关注云尔Websites CSDN博客

    欢迎进入Golang交流社区

  • 相关阅读:
    一文聊透数字化转型,获得企业未来生存的入场券--童亚斋
    10 基于Dubbo 配置实战
    MySQL(三):表的增删改查(进阶)
    你真的佩戴好劳保防护用品了吗?这才是正确的打开方式
    创业的第125天——随记
    十七、SpringAMQP
    何时使用Elasticsearch而不是MySql?
    导入Maven项目遇到的一些问题及解决
    YoloV8改进策略:聚焦线性注意力重构YoloV8
    动态内存管理(malloc free calloc realloc)
  • 原文地址:https://blog.csdn.net/wuchengzeng/article/details/133198432