go语言基础一:数据类型,变量和常量,类型转化

  做了很久的java,最近有空研究下go语言,跟java一样,go语言也是一门语言,那么他的学习方法跟java是相差不远的,记得之前入门java的时候,自己摸索,

一抹黑很难受,那么现在学习go语言,因为有了之前的经验,所以自己从基础开始学习go语言。

一   数据类型

  java中 数据类型分为:

    基本数据类型和引用数据类型,String 是应用数据类型,所以存在比较特殊的地方

    包括: byte,short,int ,floate,double,Boolean,long  ,char,这是java的基础数据类型

  go语言中:

    分为基本数据类型和符合数据类型

    基本数据类型(原?生数据类型):

      整型(int )、int8,int16,int32,int64,int,还有无符号类型,uint8,uint16,uint32,uint64

        在java中byte类型为一个字节,站8位,所以int8就是byte的另外称号,无符号类型整形就是这意思,不包括符号,所以只有正数

      浮点型(float32,floate64,complex64,complex128)、其中complex为复数的意思,i的平方为-1,复数分为整数部分和复数部分,

        复数部分为i,在代码也是这么表示,如果1i   不可以写成i,则 编译变量,所以如果为1,时候需要写1i

      布尔型、bool   只可以为true和flase,是无法参加计算的

      字符串、string   在java中是大写,但是在go中式写,

      字节 byte  int8,

      字符rune:(相当于java中的char,不过是字符),这个地方需要注意的是,go语言的编码格式utf-8,所以中文是站3个字节,所以“hello,中国“字符串的长度为6+3*2=12.

    符合数据类型(派生数据类型):

      指针(pointer)、指针,就是一个指向,地址值,浅拷贝传输的是值,深拷贝传输的指针

      数组(array)、 数组

      切 ?(slice)、 切片就是可变数组,需要通过make方法来创建,底层维护了三个ptr,len,cap

      映射(map)、 就是键值类型,需要通过make来创建

      函数(function)、就是一段操作代码片段,可以有入参,和出参

      结构体(struct)、可以理解为java中的类,bean对象

      通道 (channel) 是gorotine之间通讯所用的内容

二 变量

  变量量的本质是计算机分配的?一?小块内存,专?门?用于存放指定数据,在程序 运?行行过程中该数值可以发?生改变;

  变量量的存储往往具有瞬时性,或者说是临时存储,当程序运?行行结束,存放 该数据的内存就会释放,?而该变量量就会消失;

  Go 语?言的变量量名由字?母、数字、下划线组成,?首个字符不不能为数字;

  Go语法规定,定义的局部变量量若没有被调?用则编译错误。 命名 : camelCasing?风格,不不建议?用下划线连接多个单词

  变量声明:

  var 变量量名 变量量类型    这是单个变量进行声明的,变量在声明的时候进行初始化,这种会变量为nil

  变量名 := 变量值

  变量名1,变量名2 :=变量值1,变量值 2     需要注意这种方式,如果变量名被定义过那么就会编译报错

  匿名变量  Go语?言的函数可以返回多个值,?而事实上我们并不不是对所有的返回值都?用得上。那么就可以使?用匿匿名变量量,?用“_”下划线替换即可。匿匿名变量量不不占?用命名空间,不不会分配内存

  当然也可以如下方式设置

var (
    a int
    b string
    c []float32
    d func() bool
    e struct {
        x int
        y string
    }
)

三 常量

  (?)、声明?方式

    1、相对于变量,常量是恒定不变的值,例如圆周率。
    常量是?一个简单值的标识符,在程序运行时,不会被修改。
    2、常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字福串
    3、常量量的定义格式:
      const 标识符 [类型] = 值
      可以省略略类型说明符 [type],因为编译器?可以根据变量量的值来?自动推断其类型
      显式类型定义: const B string = "Steven"
      隐式类型定义: const C = "Steven"
    4、多个相同类型的声明可以简写为:
    const WIDTH , HEIGHT = value1, value2
    5、常量定义后未被使?,不不会在编译时出错。
  (二)、常量用于枚举(常量组)

    

const (
    Unknown = 0
    Female = 1
    Male = 2
)
const (
  a = 10
  b
  c
)
const (
    a = iota
    b = iota
    c = iota
)
println(a, b, c)
打印输出:0 1 2
第?一个 iota 等于 0,每当 iota 在新的?一?行行被使?用时,它的值都会?自动加
1;所以 a=0, b=1, c=2 
const (
    a = iota
    b
    c
println(a, b, c)
打印输出:0 1 2
第?一个 iota 等于 0,每当 iota 在新的?一?行行被使?用时,它的值都会?自动加
1;所以 a=0, b=1, c=2
const (
    i = 1<<iota
    j = 3<<iota
    k
    l
)
func main() {
fmt.Println("i=",i)
fmt.Println("j=",j)
fmt.Println("k=",k)
fmt.Println("l=",l)
}
打印输出结果:
i= 1
j= 6
k= 12
l= 24
const (
    a1 = ‘?一‘
    b1
    c1 = iota
    d1
)
func main() {
fmt.Println(a1, b1, c1, d1)
}
打印输出结果:
19968 19968 2 3

这个地方很多人好奇为”--”  打印为19968   中文字符站三个字节,对应的编码就是这个

四  类型转换 

  1、T(表达式)    

    采?用数据类型前置加括号的?方式进?行行类型转换。T表示要转换的类型;表

    达式包括变量、数值、函数返回值等。
    类型转换时,需要考虑两种类型之间的关系和范围,是否会发?生数值截断
    布尔型?无法与其他类型进?行行转换。
 
 2、float与int之间转换
    需要注意float转int时精度的损失
  3、int转string
    其实相当于是byte或rune转string。
    该int数值是ASCII码的编号或Unicode字符集的编号。转成string就是将根
    据字符集,将对应编号的字符查找出来。
    当该数值超出Unicode编号范围,则转成的字符串串显示为乱码。
    例例如19968转string,就是“?一”。
    【备注:】
    ASCII字符集中数字的10进制范围是[30 - 39]
    ASCII字符集中?大写字?母的10进制范围是[65 - 90]
    ASCII字符集中?小写字?母的10进制范围是[97 - 122]
    
Unicode字符集中汉字的范围是[4e00-9fa5],10进制范围是
    [19968 - 40869]
4、string转int
  不不允许字符串串转int(cannot convert 变量量 (type string) to type int),只能通过strconv这个包下面的函数进行转换

  

原文地址:https://www.cnblogs.com/xiufengchen/p/12260381.html

时间: 2024-11-05 11:39:57

go语言基础一:数据类型,变量和常量,类型转化的相关文章

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

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

黑马程序员_01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)

------- android培训.java培训.期待与您交流! ---------- Java语言主要由5中符号组成 标识符:数字.字母.美元符.下划线(注意不能数字开头) 关键字:goto和const保留了它们,但是Java没有使用. 运算符:注意运算符优先级(左结合和右结合要注意) 分隔符:注意+号可以分割字符串. 注释:三种注释. 数据类型与变量 常量: 整型 浮点型 字符:注意后面跟三个八进制(\ddd)和 四位unicode码(\u8bf7) (不区分大小写) 字符串 布尔型 变量:

C语言基础学习基本数据类型-变量和常量

变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法是:数据类型名 变量名 ; 比如我们可以这样定义一个整型变量: int a;  //int类型表示整型 若要声明多个变量,可以逐个声明,也可以在数据类型名后面加上多个变量名,中间用逗号分隔: 数据类型名 变量名1, 变量名2, 变量名3; 创建变量的同时可以为其赋值,也就是初始化变量.语法为: 数据

javascript 概述及基础知识点(变量,常量,运算符,数据类型)

JavaScript概述 1.1 什么是JavaScript: javaScript(简称js),是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言.同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作.它最初由网景公司(Netscape)的Brendan的Eich设计,是一种动态.弱类型.基于原型的语言,内置支持类.一种运行于 JS解释器/引擎 解释型脚本语言.因为Netscape与Sun合作,Netscape管理层希望它外观看起来像J

【UiBot基础教程】变量与常量 - 定义变量以及变量类型

UiBot中的变量是动态类型的,无需再定义的时候声明变量的类型,即变量的值和类型都可以在运行过程中动态改变.这也符合一般脚本语言如Python.Lua.JavaScript的习惯. 定义变量名的方式是:Dim 变量名再定义变量名的同时可以给变量赋值一个初始值:Dim 变量名 = 值想要定义多个变量的话,可以这样定义:Dim 变量名=值, 变量名1Dim 变量名=值, 变量名=值同理,想要定义一个常量就可以这样定义:Const 常量名=值, 常量名=值 变量名的定义基础规范:变量名可以用英文字母.

黑马程序员--C语言基础之--数据类型

------- IOS培训期待与您交流! ---------- 所谓的类型,就是对数据分配存储单元的安排,包括存储单元的长度以及数据的形式,不同的类型分配不同的长度和存储的形式,C语言允许使用的数据类型如下图: 接下来将对几个类型做一个简单的介绍: 一.基本数据类型之--整型(int) (一).系统中为每一个整型数据分配了4个字节的存储空间,整型数有以下几种类型: (1)短整型(short int):类型名为shotr int或者简写为short, 系统为分配了2个字节的存储空间,变量值的范围是

JAVA数据类型,变量,转换,常量,运算符

java数据类型: Java基本类型共有八种,基本类型可以分为三类: 1.字符类型char,用单引号赋值 2.布尔类型boolean 3.数值类型byte.short.int.long.float.double.数值类型又可以分为整数类型byte.short.int.long和浮点数类型float(直接赋值时必须在数字后加上f或F).double(赋值时可以加d或D也可以不加). java变量: 数据类型 变量名[=值][,变量名[=值]];int a;int b = 1;int c,d;int

c语言基础——基本数据类型

1.基本数据类型是什么?包括有哪些代表?除了基本数据类型还有什么其他类型形式? (1)基本数据类型--用于描述基本的数据 (数.日期等) (2)有整型.实型.字符型.枚举类型等等 =========================简单分割线======================= ①整型:int      扩展:short int(2字节16位进制数),int(2字节),long int(4字节) · eg  :-123,456,0 在内存中存放方式--二进制(0101--) 备注:每一个

Python新手学习基础之数据类型——变量

关于Python的变量是这样描述的: 变量是存储在内存里的一个值,通过变量名,我们可以访问到该变量的值. 上面这几行代码中,price,count和sum都是变量,Python是动态类型语言,变量是不需要声明的,只要在使用变量前,对其进行赋值即可,变量只有被赋值了,才会被创建.关于赋值,我们会在之后的博文会再详细介绍哦. Python有6个标准的变量数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) 我们

swift基础语法之——变量和常量

swift几乎可以用任何字符作为常量和变量的名字 例如: let π = 3.14159 let 网址 = "http://www.cnblogs.com/walter371" let {emoji表情} = "王大力和王二力" //emoji表情是一种特殊的Unicode字符 //在mac上可以使用快捷键:control+command+空格来调出emoji表情 常量和变量的注意点:不能包含数学符号:+.-.*./不能是关键字:(如:let . var等) 不能包