01.变量常量和数据类型

1. 变量和常量

变量初始化

var v1 int = 10
var v2 = 10
v3 := 10

变量赋值

var v1 int
v1 = 10
v2 := 20
v1, v2 = v2, v1    //多重赋值_, _, name = getName()     // 匿名变量

预定义常量

const {                // const 关键字将iota初始化为0
    v1 = iota
    v2 = iota         // 1
    v3 = iota         // 2
}

const {    v1 = iota << 1     // 1          v2                 // 2  表达式格式一样可省略    v3                 // 4}

const {  SUNDAY = iota// MONDAY     // 枚举类型// TUESDAY// WEDNESDAY// THURSDAY// FRIDAY// SATURDAY}

2. 数据类型

2.1 bool

var v1 bool
v1 = true
v2 := (1==2)
v3 := (1!=0)

2.2 int

var v1 int32
v2 := 10      // v2自动推导为int64类型
v1 = int32(v2)    // 赋值给v1前要强制类型转换,否则会报错

两个不同类型整数不能直接做比较,但是可以与字符常量做比较

var v1 int32 = 10
    v2 := 10
    var v3 bool = (int(v1) > v2)  v4 := v1 > 20
    fmt.Print(v1, v2, v3, v4)

位运算

a := 124 << 2         // 496   左移2位
b := 124 >> 2         // 31
c := 124 ^ 2           // 异或
d := 124 & 2           //  与
e := 124 | 2            // 126
g := ^3                  // 取反

2.2 字符串

    var c string
    c = "hello 中国"
    n := len(c)

    for i := 0; i < n; i++ {
        ch := c[i]     // ch类型位byte
        fmt.Println(i, ch)
    }

    for i, ch := range c {        // ch类型位unicode
        fmt.Println(i, ch, string(ch)
    }

2.3 数组

var myarr [5]int     // 声明数组
myarr = [5]int{1,2,3,4,5}  //数组赋值

var arr1  [2*N] struct{x, y int32}   // 复杂类型数组
var arr2  [2][3]int  二维整形数组, 2行5列
var arr3  [2][2][2]float32

遍历元素

arr1 := [5]int{1,2,3,4,5}
for i := 0; i < len(arr1); i++ {
    fmt.Printf(arr1[i])
}

for index, value := range(arr1){
    fmt.Println(index, value)
}

值类型

数组是值类型,所有的值类型在赋值或者传递给函数时都会发生一次复制。

package main

import "fmt"

func modify(array [5]int)  {
    array[0] = 10
}

func main()  {
    arr1 := [5]int{1,2,3,4,5}
    modify(arr1)    // 不会改变数组的值
    fmt.Print(arr1)
}

2.4 数组切片

基于数组创建切片

func main()  {
    var arr1 = [5]int{1,2,3,4,5}
    var myslice []int = arr1[:5]
    fmt.Println(myslice)
}

利用make函数创建切片

package main

import "fmt"

func main()  {
    var slice1 = make([]int, 5)
    var slice2 = make([]int, 5, 10)
    slice3 := []int{1,2,3,4,5}

    fmt.Println(slice1, slice2, slice3)  // len(slice2)   5   显示元素个数  // cap(slice2)   10  显示空间大小
   }

向数组切片中添加元素

var slice1 = []int
var slice2 = []int{1,2,3}

slice1 = append(slice1, [3]int{1,2,3})  // 添加元素
slice1 = append(slice1, slice2...)     //向数组切片中添加数组切片,...是一个语法糖

内容复制

sli1 := []int{1,2,3}
sli2 := []int{4,5,6,7,8,9}
copy(sli1, sli2)   //将sli2中的元素复制到sli1中

2.5 map数据类型

package main

import "fmt"

type PersonInfo struct {
    ID string
    Name string
    Address string
}

func main()  {
    var persons map[string] PersonInfo

    persons = make(map[string] PersonInfo)

    persons["zj"] = PersonInfo{"01","zj","209"}

    val, ok := persons["zj"]
    if ok {
        fmt.Println(ok, val)
    }
}

原文地址:https://www.cnblogs.com/zhangjian0092/p/12356115.html

时间: 2024-10-02 04:25:10

01.变量常量和数据类型的相关文章

iOS开发Swift篇(01) 变量&amp;常量&amp;元组

iOS开发Swift篇(01) 变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对于14年部分iOS开发Swift篇专题的博文也不再做任何的校正和更新,特此说明. 2)该博文对应代码可以在https://github.com/HanGangAndHanMeimei/Code获得. 一.变量和常量 01 变量和常量的定义 在swift中变量使用var来修饰,常量使用let来修饰,变量可以修改而常量不

Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化

Python入门(二)--IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化 我们从今天就开始正式的学习PY交易了,PY交易还行,我们有基础之后学习起来倒不是说那么的被动,我学习的是Python2.7,虽然现在随着版本的迁移至Python3,但是这个并不会对我们造成什么困扰,毕竟只是一个适应阶段 我们的学习资料:廖雪峰官方网站Python2.7教程 一.IDE选择PyCharm 我们虽然在前面一章已经配置过,但是我们还是有很多的IDE可以开发Py,比如su

JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中,用户可以通过指定数据类型和标识符来声明变量,其基本语法为: DataType identifier; 或 DataType identifier = value; 其中,DataType是变量类型,如int/string/char/double/boolean等:identifier是变量名称,即标识符:value就是声明变量的值. 注: a.标识符由数字0-9.大小写字母.下划线.美元符号.人民币符号以及所有

Java变量及基本数据类型

1.Java变量 1.1 变量的概念 内存中的一块存储区域: 该区域有自己的名称(变量名)和类型(数据类型): 该区域的数据可以在同一类型范围内不断变化: 1.1.1 为什么需要定义变量 用来不断的存放同一类型的常量,并可以重复使用: 1.1.2 定义变量的格式 数据类型  变量名  = 初始化值: 1.1.3 变量使用范围 变量的作用范围(一对{}之间有效,"就近原则"); 1.2 变量的使用 1)声明 int a ;  //表示声明一个整型变量,名为a: int b,c,d;  /

JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都是很痛苦的事情,但是程序之路这么长,你必须精通的不能再精通一门语言才行(有点说大了哈),但是最起码你要如鱼得水吧,我准备的资料有: JAVA编程思想 深入浅出JAVA 黑马,传智,慕课,极客学院等-的视频 Google搜索 我们既然是重新学一遍,那我们尽量就是用记事本去敲代码好了,这里我用notep

ES6变量常量字符串数值

[转]ES6之变量常量字符串数值 ECMAScript 6 是 JavaScript 语言的最新一代标准,当前标准已于 2015 年 6 月正式发布,故又称 ECMAScript 2015. ES6对数据类型进行了一些扩展 在js中使用ES6必须先声明 严格模式 "use strict" let变量 let特性: 1.不允许重复声明 2.没有预解析. 3.块级作用域 一对{}包括的区域称为代码块 块级作用域指一个变量或者函数只在该区域才起作用. 例: "use strict&

PHP面试 PHP基础知识 二(常量及数据类型)

常量及数据类型 PHP八种数据类型 四种标量类型 字符串(string).布尔(boolean).浮点(float/double).整型(integer) 两种复合类型 数组(array).对象(object) 两种特殊类型 资源(resource)  null PHP的字符串的定义方式及各自区别? 定义方式:单引号  双引号  heredoc 和 newdoc 区别:单引号的效率高于双引号 单引号 单引号不能解析变量 单引号不能解析转义字符,自能解析单引号和反斜线本身 变量和变量.变量和字符串

变量与基本数据类型

讲解套路: 1.xxx是什么? 窍门:提取知识点名词中的关键字来加以解释 2.为什么要有它? 大前提:python中语言中出现的所有的语法都是为了让计算机能够具备人的某一功能/像人一样去做xxx 3.如何用? 今日内容:变量与基本数据类型(全为重点) 一.什么是变量? 变量就是可以变化的量,量是指事物的状态,比如人年龄.游戏角色的等级.金钱等 二.为什么要有变量? 为了让计算机能像人一样记忆某种状态且状态是可以发生改变的 详细的说:程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,我们

JavaScript连载3-变量内存分析、常量、数据类型

一.变量的内粗分析 1.变量的默认值 (1)如果变量初始化时没有赋值,那么里面存储的时undefined (2)示例 var lk; console.log(lk); 2.同时声明多个变量 两种方式 var name,age,sex; name = "kdfg"; age = 2; //或者 var name = "jsoaf",age,sex="男"; 3.在内存中的表现形式 栈内存(存放变量等,类似于Java),堆内存 4.变量命名规则 (1