首页 > 其他分享 >Golang基础入门

Golang基础入门

时间:2022-11-06 10:45:13浏览次数:61  
标签:case 遍历 入门 数据类型 fmt 基础 Golang switch 表达式

util 用于定义常用函数 让其他文件来调用

db 定义对数据库操作的函数

打包基本语法:package 包名

引入包基本语法,import "包路径"

使用包函数

包名.函数名()

接口的基本语法 type 接口名称 interface{
//方法
method(参数列表)返回值列表
}
接口里面的方法没有全实现,会报错

指针

值类型包括:基本数据类型int系列,float系列,bool,string、数组和结构体(struct)
引用类型:指针、slice切片、map、管道chan、interface等
基本数据类型,变量存的就是值,也叫值类型
基本数据类型在内存中的布局
地址是&i,
指针类型,指针变量存的是一个地址 ,这个地址指向的空间存的才是值
指针在内存的布局

var ptr *int = &i

ptr 是一个指针变量

ptr 的类型*int

ptr 本身的值&i

类型

值类型包括:基本数据类型int系列,float系列,bool,string、数组和结构体(struct)

值类型:变量直接存储值,内存通常在栈中分配

引用类型包括:指针、slice切片、map、管道chan、interface等

引用类型:变量储存的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在堆区分配

获取用户终端输入

Scanln fmt.Println("请输入年龄") fmt.Scanln(&age)

scanf fmt.Scanf("%s %t", &name,&isto) fmt.Printf("%v,%v", name, isto)

位运算

程序流程控制

顺序控制 程序从上到下地执行,中间没有任何判断和跳转

分支控制

单分支控制

  • 基本语法 if 条件表达式 { 执行代码 } 需求—>分析—> 代码



双分支

多分支

switch 分支 (默认有break)

在golang中case后面可跟多个表达式,用逗号隔开

switch 细节讨论:

1)case后是一个表达式(常量值、变量、一个有返回值的函数都可以)

2)case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致

3)case后面可以带多个表达式,使用逗号间隔

4)case后面的表达式如果是 常量值,则要求不能重复

5)case后面不需要带break

6)default 语句不是必须的

7)switch后也可以不带条件表达式,类似if else 使用

8)switch 后也可以直接声明/定义一个变量,分号结束

9)switch 穿透 fallthrough,如果在case语句块后增加fall through,则会继续执行下一个case,也叫switch穿透 默认只会穿透一层

10)Type Switch:switch 语句还可以被用于type-switch来判断某个interface变量中实际指向的变量类型 (判断空接口的数据类型)

循环控制

for循环的细节讨论

1)循环条件是返回一个布尔值的表达式

2)第二种写法

3)第三种写法 字符串遍历

  • 字符串遍历方式1-传统方式

var str string = "hello,world河北"

for i := 0; i < len(str); i++ {

fmt.Printf("%c\n", str[i]) //使用到下标

}

细节:如果我们字符串含有中文,那么传统的遍历字符串方式,就是错误,会出现乱码。原因是传统的方式对字符串的遍历是按照字节来遍历,而一个汉字在utf8编码是对应3个字节

  • 字符串遍历的方式2-for-range

    var str1 = "abc=ok保定1"

    for i, l := range str1 {

​ fmt.Printf("index=%d,value=%c", i, l)

}

4)嵌套循环

标签:case,遍历,入门,数据类型,fmt,基础,Golang,switch,表达式
From: https://www.cnblogs.com/lzhnx/p/16862117.html

相关文章

  • 【Python零基础入门篇 · 21】:构造函数、类属性和实例属性的访问
    构造函数构造方法构造方法:__init__方法(通常用来做属性初始化或赋值操作)用构造函数实现英雄攻击类属性和实例属性的访问类属性属于类,实例属性属于对象类属性在......
  • 【Python零基础入门篇 · 21】:构造函数、类属性和实例属性的访问
    构造函数构造方法构造方法:__init__方法(通常用来做属性初始化或赋值操作)用构造函数实现英雄攻击类属性和实例属性的访问类属性属于类,实例属性属于对象类属性在......
  • 【Python零基础入门篇 · 22】:析构函数、封装和私有权限、私有属性和私有方法
    析构函数__del__方法析构方法__del__是对象在被垃圾回收的时候起作用的一个方法,它的执行一般也就意味着对象不能够继续引用,回收内存。在删除对象时解释器会默认使用......
  • golang之 sync.WaitGroup
    packagemainimport( "fmt" "sync")funcmain(){ varch1,ch2,ch3=make(chanstruct{}),make(chanstruct{}),make(chanstruct{}) varwgsync.WaitGroup wg.Add......
  • 【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常
    拆包拆包:对于函数中的多个返回数据,去掉元组、列表或者字典,直接获取里面数据的过程。列表的拆包元组的拆包异常种类异常的定义异常:异常是程序执行过程中出现的......
  • 多线程基础
    多线程基础基本介绍线程由进程创建的,是进程的一个实体一个进程可以拥有多个线程单线程:同一个时刻,只允许执行一个线程多线程:同一个时刻,可以执行多个线程并发:同一个时......
  • 从0开始梳理django项目_3.打回原形,构建docker基础环境(day3)
    构建过程下载python模块比较费劲,先构建出来基础镜像,上传到docker仓库![root@ansibledjango_uwsgi]#dockerlogin-uxiaorenwudashuju[root@ansibledjango_uwsgi]#......
  • java基础之方法
    一、方法的定义1、定义:java方法是语句的集合,它们在一起执行一个功能1、方法是解决一类问题的步骤的有序组合2、方法包含于类或者对象中3、方法在程序中被创建,在其他......
  • 数学基础
    集合open(开集):一个子集\(S\inR^n\)是开集,如果对于每个向量\(x\inS\),都可以找到一个\(x\)的\(\varepsilon\)邻域\(N(x,\varepsilon)=\{z\inR^n|\|z-x\|<\varepsilon\}\)......
  • Mybatis 入门
    MyBatis简介: MyBatis是一种JDBC的框架,为了让JDBC更加简洁,快速,易于维护。MyBatis主要从以下几个方面简化JDBC:1.把注册驱动和sql语句这些硬编码,在配置文件中完成2.把手......