PHP 开发者学 Golang 之基本结构

栏目: PHP · 发布时间: 6年前

内容简介:PHP 是一门弱类型的语言,所以 PHP 开发者的我们刚刚接触强类型的语言是有点蛋疼的。 在写普通程序的时候,弱类型挺方便的。但是在设计金钱相关的程序,强类型语言往往更安全。今天我们就来学习一下 Golang 的基本结构、基本数据类型。 每一门语言都有其关键字和预定义标识符。Golang 语言也不例外。Go 语言有25 个关键字或保留字,有 36 个预定义标识符。要记熟这些关键字和标识符。

PHP 是一门弱类型的语言,所以 PHP 开发者的我们刚刚接触强类型的语言是有点蛋疼的。 在写普通程序的时候,弱类型挺方便的。但是在设计金钱相关的程序,强类型语言往往更安全。

今天我们就来学习一下 Golang 的基本结构、基本数据类型。 每一门语言都有其关键字和预定义标识符。Golang 语言也不例外。

Go 语言有25 个关键字或保留字,有 36 个预定义标识符。要记熟这些关键字和标识符。

关键字或保留字

break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

预定义标识符

append bool byte cap close complex complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make new nil panic uint64
print println real recover string true uint uint8 uintptr

常量、变量

常量

Go 语言中的的常量定是使用 const 关键字 常量要求在编译时可以确定的值。所以常量定义不允许声明一个变量的值。

const Pi = 3.14159 //正确
const abc = getAbc() //错误

多个变量可以使用括号一下定义多个

const (
    a = 100
    b = 200
    c = 300
)

变量

变量定义使用 var 关键字

var a = 1000;

定义变量的时候需要指定变量的类型。 如果不指定则要求给变量赋予一个默认值,指定默认值后,又 Go 语言自动推导类型

var abc = 200
var str String

同时定义多个变量,同样是使用括号的形式

var (
	str string
	num int
	m map[string]string
)

简短形式

简短形式的变量定时是使用 := 的形式来定义。

b := 2000

相同类型的多个变量可以声明在同一行,如:

var a, b, c int

也可以在同一行赋值

a, b, c = 1, 2, "test"

init 函数

变量的初始化除了可以在全局声明中初始化,也可以在 init 函数中初始化。 init 是一种很特殊的函数,在每个包完成初始化后自动执行,无法手动调用,并且执行优先级比 main 函数高。

package main

import "fmt"

var Pi float64

func init() {
   Pi = 3.14159
   fmt.Println(Pi)
}

数据类型

布尔类型 bool

var a = 10 > 9 // true
!a // false

数字类型,数字类型还区分整数类型,浮点数类型,无符号整数类型。

整数:

  • int8(-128 -> 127)
  • int16(-32768 -> 32767)
  • int32(-2,147,483,648 -> 2,147,483,647)
  • int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)

浮点型(IEEE-754 标准):

  • float32(+- 1e-45 -> +- 3.4 * 1e38)
  • float64(+- 5 * 1e-324 -> 107 * 1e308)

无符号整数:

  • uint8(0 -> 255)
  • uint16(0 -> 65,535)
  • uint32(0 -> 4,294,967,295)
  • uint64(0 -> 18,446,744,073,709,551,615)

整数类型不支持隐式转换,只能手动进行显式转换

var a int16 = 34
var b int32
b = a + a //这个是错误的形式,会报错:./test.go:7:4: cannot use a + a (type int16) as type int32 in assignment

显式转换后再去计算就支持了

var a int16 = 34
var b int32
b = int32(a) + int32(a)
print(b) //68

复数类型,复数类型有 complex64 (32 位实数和虚数), complex128 (64 位实数和虚数)

var b complex64 = complex(5,6)
fmt.Println(b)

运行结果: (5+6i)

位运算,位运算有 按位与 & ,按位或 | ,按位异或 ^

运算符与优先级

运算符优先级从高到底。

优先级 	运算符
 7 		^ !
 6 		* / % << >> & &^
 5 		+ - | ^
 4 		== != < <= >= >
 3 		<-
 2 		&&
 1 		||

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Programming in Haskell

Programming in Haskell

Graham Hutton / Cambridge University Press / 2007-1-18 / GBP 34.99

Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. This introduc......一起来看看 《Programming in Haskell》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具