首页 > 其他分享 >30天学会GO–第2天 GO语言语法和数据类型

30天学会GO–第2天 GO语言语法和数据类型

时间:2024-11-29 20:04:52浏览次数:12  
标签:fmt 30 数据类型 Println 整型 Printf GO main

30天学会GO–第2天 GO语言语法和数据类型

文章目录

前言

有语言基础的学起GO的语法和数据类型来很快,基本上没有大的区别,下面就简单介绍一下,比较有特色的地方会拎出来说,详细的请看官方文档

go语言官方编程指南:https://pkg.go.dev/stdopen in new window

go语言的官方文档学习笔记很全,推荐去官网学习

一、 基础数据类型

1.1 数字类型

序号类型和描述
1uint8 无符号 8 位整型 (0 到 255)
2uint16 无符号 16 位整型 (0 到 65535)
3uint32 无符号 32 位整型 (0 到 4294967295)
4uint64 无符号 64 位整型 (0 到 18446744073709551615)
5int8 有符号 8 位整型 (-128 到 127)
6int16 有符号 16 位整型 (-32768 到 32767)
7int32 有符号 32 位整型 (-2147483648 到 2147483647)
8int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
9byte 类似 uint8
10rune 类似 int32
11int 与 uint 一样大小
12uintptr 无符号整型,用于存放一个指针

1.2 浮点类型

序号类型和描述
1float32 IEEE-754 32位浮点型数
2float64 IEEE-754 64位浮点型数
3complex64 32 位实数和虚数
4complex128 64 位实数和虚数

1.3 var 声明一个或者多个变量:

package main
import (
	"fmt"
)
func main() {
	var a = "start"
	// 什么变量 b 和 c, 赋值 2 和 3
	var b, c int = 2, 3
	fmt.Println(a)
	fmt.Println(b, c)
	var d = true
	// 声明变量 e ,初始值为 0
	var e int
	fmt.Println(d)
	fmt.Println(e)
	// 声明变量 f ,值是 字符串 bababababab
	f := "bababababab"
	fmt.Println(f)
	// 声明多个变量
	var (
		m string
		n int
		x bool
	)
	fmt.Println("m:", m)
	fmt.Println("n", n)
	fmt.Println("x", x)
}

二、 流程控制语法

2.1 if else

package main
import (
	"fmt"
)
func main() {
	for n := 0; n < 20; n++ {
        if n%4 == 0 {  // 注意:{ 的位置
			fmt.Println(n)
		} else {
			fmt.Println("....")
		}
	}
}

2.2 for / range

package main

import "fmt"

func main() {
    nums := []int{1, 2, 3, 4}

    for i, v := range nums {
        fmt.Printf("Index: %d, Value: %d\n", i, v)
    }

    // 如果只需要值,可以用 `_` 忽略索引:
    for _, v := range nums {
        fmt.Printf("Value: %d\n", v)
    }

    // 如果只需要索引,可以忽略值:
    for i := range nums {
        fmt.Printf("Index: %d\n", i)
    }
}

2.3 switch

package main
import (
	"fmt"
)
func main() {
	var grade string = "B"
	switch {
        case grade == "A":
            fmt.Printf("优秀!\n")
        case grade == "B", grade == "C":
            fmt.Printf("良好\n")
        case grade == "D":
            fmt.Printf("及格\n")
        case grade == "F":
            fmt.Printf("不及格\n")
        default:
            fmt.Printf("差\n")
	}
	fmt.Printf("你的等级是 %s\n", grade)
}

2.4 goto

package main

import "fmt"

func main() {
	i := 0

start:
	fmt.Println(i)
	i++

	if i < 5 {
		goto start
	}

	fmt.Println("循环结束")
}

2.5 break / continue

package main

import "fmt"

func main() {
	for i := 0; i < 20; i++ {
		if i > 10 {
			break
		}
		if i%2 == 0 {
			fmt.Println(i, "继续")
			continue
		}
	}
}

三、 总结

此篇仅仅对 GO 语言的基本数据类型和基本的操作进行简单入门,自己对 GO 的语言也有了一丢丢的认识,程序执行也就 顺序,分支,循环这三种方式,更高阶的内容慢慢补充,最好在实践中磨练。

标签:fmt,30,数据类型,Println,整型,Printf,GO,main
From: https://blog.csdn.net/Xiao651/article/details/144144673

相关文章

  • 【C++】数据类型的存储范围与 typedef 的深度解析
    博客主页:[小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏:C++文章目录......
  • Go - go install
     zzh@ZZHPC:/zdata/Github/greenlight$goinstallhonnef.co/go/tools/cmd/staticchecknorequiredmoduleprovidespackagehonnef.co/go/tools/cmd/staticcheck;toaddit:gogethonnef.co/go/tools/cmd/staticcheckzzh@ZZHPC:/zdata/Github/greenlight$g......
  • 【Go底层】通道原理
    目录1、背景2、go版本3、源码解释【1】chan的底层结构【2】chan初始化【3】往chan发送数据【4】从chan读取数据4、总结1、背景chan可以说是go中非常好用的并发控制模块,并且是并发安全的,采用了CSP思想(通过通信来共享内存,而不是通过共享内存来通信),chan虽然好用,但是......
  • 【Go底层】time包Ticker定时器原理
    目录1、背景2、go版本3、源码解释【1】Ticker结构【2】NewTicker函数解释4、代码示例5、总结1、背景说到定时器我们一般想到的库是cron,但是对于一些简单的定时任务场景,标准库time包下提供的定时器就足够我们使用,本篇文章我们就来研究一下time包下的Ticker定时器。2......
  • Let'sGoFurther - Chapter 19: Building, Versioning and Quality Control
     $makemigrationname=create_example_table run:gorun./cmd/apipsql:psql${GREENLIGHT_DB_DSN}migration:@echo'Creatingmigrationfilesfor${name}...'migratecreate-seq-ext=.sql-dir=./migrations${name}up:......
  • 基于Python+Django可视化的学习系统的设计与实现
    内容概要:本文档主要介绍了基于Python语言、Django框架和MySQL数据库设计与实现的一个可视化的学习系统。系统设计包括对B/S架构的研究与应用,旨在提高可视化学习的效率与管理水平。文档详细论述了系统的功能设计、模块实现及系统测试等内容。系统具备个人中心、用户管理、视频类......
  • Go的依赖管理Go Module
    Go的依赖管理GoModule来源https://www.liwenzhou.com/posts/Go/go_dependency/历史遗留问题如果是使用Go1.11和Go1.12版本,需要手动开启Gomodule支持为什么需要依赖管理最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个......
  • Y20030009基于Java+springboot+MySQL+uniapp框架的待办事项提醒微信小程序的设计与实
    待办事项提醒小程序1.摘要2.开发目的和意义3.系统功能设计4.系统界面截图5.源码获取1.摘要随着现代人的工作和生活压力越来越大,人们的精力和时间也越来越有限。在这样的情况下,很容易忘记一些很重要的行程,有时会导致严重的后果,如何处理好自己的待办事项,便成为了一个需......
  • 纯Go语言开发人脸检测、瞳孔/眼睛定位与面部特征检测插件-助力GoFly快速开发框架
    前言​开发纯go插件的原因是因为目前Go生态系统中几乎所有现有的人脸检测解决方案都是纯粹绑定到一些C/C++库,如 ​​OpenCV​​ 或 ​​​dlib​​​,但通过 ​​​cgo​​​ 调用C程序会引入巨大的延迟,并在性能方面产生显著的权衡。此外,在许多情况下,在各种平台上安......
  • Y20030012基于php+mysql的药店药品信息管理系统的设计与实现 源码 配置 文档
    库存管理系统1.摘要2.系统功能3.功能结构图4.界面展示5.源码获取1.摘要21世纪是信息的时代,信息技术发展突飞猛进。各种信息化管理系统如雨后春笋一样出现。Internet的迅猛发展使其成为全球信息传递与共享的巨大的资源库。越来越多的网络环境下的Web应用系统被建立起......