go学习day3
strings和strconv使用
1、strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头
2、strings.HasSuffix(s string, suffix string) bool: 判断字符串s是否以suffix结尾
3、strings.Index(s string, str string) int:判断str在s中首次出现的位置,如果没有出现,则返回-1
4、strings.LastIndex(s string, str string) int: 判断str在s中最后出现的位置,如果没有出现,则返回-1
5、strings.Replace(str string, old string, new string, n int) : 字符串替换
6、strings.Count(str string, substr string) int: 字符串计数
7、strings.Repeat(str string, count int) string: 重复count次str
8、strings.ToLower(str string) string: 转为小写
9、strings.ToUpper(str string) string: 转为大写
10、strings.TrimSpace(str string):去掉字符串首尾空白字符
strings.Trim(str string, cut string):去掉字符串首尾cut字符
strings.TrimLeft(str string, cut string):去掉字符串首cut字符
strings.TrimRight(str string, cut string):去掉字符串首cut字符
11、 strings.Field(str string):返回str空格分隔的所有子串的slice
strings.Split(str string, split string):返回str split分隔的所有子串的slice
12、 strings.Join(s1 []string, sep string):用sep把s1中的所有元素链接起来
13、 strconv.Itoa(i int):把一个整数i转成字符串
14、 strconv.Atoi(str string)(int, error):把一个字符串转成整数
时间和日期类型
1. time包
2. time.Time类型,用来表示时间
3. 获取当前时间, now := time.Now()
4. time.Now().Day(),time.Now().Minute(),time.Now().Month(),time.Now().Year()
5. 格式化,fmt.Printf(“%02d/%02d%02d %02d:%02d:%02d”, now.Year()…)
6. time.Duration用来表示纳秒
7. 一些常量:
const (
Nanosecond Duration = 1
Microsecond = 1000 * Nanosecond
Millisecond = 1000 * Microsecond
Second = 1000 * Millisecond
Minute = 60 * Second
Hour = 60 * Minute
)
8. 格式化:
now := time.Now()
fmt.Println(now.Format(“02/1/2006 15:04:05”))
fmt.Println(now.Format(“2006/1/02 15:04”))
fmt.Println(now.Format(“2006/1/02”))
流程控制
例一:
package main import "fmt" func main() {
var a int = 5
switch a {
case 0,1,2,3,4,5: //a等于0,1,2,3,4,5都匹配
fmt.Println("a is equal 0")
fallthrough //不退出继续向下执行
case 10:
fmt.Println("a is equal 10")
default:
fmt.Println("a is equal default")
}
}
例二:for range
package main import "fmt" func main() {
str := "hello, world,中国"
for i, v := range str {
fmt.Printf("index[%d] val[%c] len[%d]\n",i, v, len([]byte(string(v))))
}
}
例三:break continue
package main import "fmt" func main() {
str := "hello world,中国"
for i, v := range str {
if i > 2 {
continue
}
if (i > 3) {
break
}
fmt.Printf("index[%d] val[%c] len[%d]\n", i, v, len([]byte(string(v))))
}
}
例四:
package main
import "fmt"
func main() {
LABEL1:
for i := 0; i <= 5; i++ {
for j := 0; j <= 5; j++ {
if j == 4 {
continue LABEL1
}
fmt.Printf("i is: %d, and j is: %d\n", i, j)
}
}
}
例五:
package main func main() {
i := 0
HERE:
print(i)
i++
if i == 5 {
return
}
goto HERE
}
函数
一、golang函数特点
a、不支持重载,一个包不能有两个名字一样的函数
b、函数是一等公民,函数也是一种类型,一个函数可以赋值给变量
c、匿名函数
d、多返回值
例一:
package main import "fmt" type add_func func(int, int) int func add(a, b int) int {
return a + b
} func operator(op add_func, a int, b int) int {
return op(a, b)
} func main() {
c := add
fmt.Println(c)
sum := operator(c, 100, 200)
fmt.Println(sum)
}
二、函数参数传递方式
1、值传递
2、引用传递
注意1:无论是值传递,还是引用传递,传递给函数的都是变量的副本,不过,值传递是值的拷贝。引用传递是地址的拷贝,一般来说,地址拷贝
更为高效。而值拷贝取决于拷贝的对象大小,对象越大,则性能越低。
go学习day3的更多相关文章
- python学习-day3
今天是第三天学习,加油! 第一部分 集合 一.集合 1.什么是集合以及特性? 特性:无序的,不重复的序列,可嵌套. 2.创建集合 方法一:创建空集合 s1 = set() print(type(s1) ...
- python学习day3
目录: 1.集合set 2.计数器 3.有序字典 4.默认字典 5.可命名元组 6.队列 7.深浅拷贝 8.函数 9.lambda表达式 10.内置函数 一.集合set set是一个无序且不重复的元素 ...
- python学习Day3 变量、格式化输出、注释、基本数据类型、运算符
今天复习内容(7项) 1.语言的分类 -- 机器语言:直接编写0,1指令,直接能被硬件执行 -- 汇编语言:编写助记符(与指令的对应关系),找到对应的指令直接交给硬件执行 -- 高级语言:编写人能识别 ...
- python学习 day3 (3月4日)---字符串
字符串: 下标(索引) 切片[起始:终止] 步长[起始:终止:1] 或者-1 从后往前 -1 -2 -3 15个专属方法: 1-6 : 格式:大小写 , 居中(6) s.capitalize() s ...
- Linux学习Day3:新手必须掌握的Linux命令(二)
今天学习的命令都是运维工作中经常要用到的,非常实用,必须要用心学习,争取把这些命令烂熟于心,具体内容如下: 一.系统状态监测命令 1.ifconfig命令 用于获取网卡配置与网络状态等信息. [roo ...
- Java学习day3
今天跟着b站up的视频学习了方法定义调用与重载,以及类的封装. Java中的方法与c++当中的函数类似,只是定义格式为: public static void 方法名(){ 方法体 } 上完课做实验的 ...
- Python学习day3作业
days3作业 作业需求 HAproxy配置文件操作 根据用户输入,输出对应的backend下的server信息 可添加backend 和sever信息 可修改backend 和sever信息 可删除 ...
- Moqui学习Day3
添加一个新建表单 添加一个按钮来弹出新建表单,并创建一个转换来处理输入数据操作. 在FindTutorial.xml文件中添加一个转换. <!--新增 列表 --> <transit ...
- ios学习Day3
bool 数据类型 #define TRUE 1// #define FALAE 0 #define BOOL int Bool flag=1; bool型 实质上是 int型 c89没有提供 c99 ...
- android开发学习——day3
关于android开发的详细过程了解 Android App程序的四种重要组成类型:1.Activity 2.Service 3.Content Provider 4.Broadcast Receiv ...
随机推荐
- 回文树&后缀自动机&后缀数组
KMP,扩展KMP和Manacher就不写了,感觉没多大意思. 之前感觉后缀自动机简直可以解决一切,所以不怎么写后缀数组. 马拉车主要是通过对称中心解决问题,有的时候要通过回文串的边界解决问题 ...
- 配置url防盗链、目录权限访问控制Directory、文件访问权限控制FilesMatch
1.配置url防盗链: 编辑:/usr/local/apache2.4/conf/extra/httpd-vhosts 文件 写入: <Directory /var/www/222/>Se ...
- Blender 曲线操作
Curve (Bézier Versus NURBS)https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Curve_and_Path_Mode ...
- (1)HTML的组成(什么是标签、指令、转义字符、数据、标签字符表)
html的组成:标签+指令+转义字符+数据 1.标签 <>内的,以字母开头,可以结合合法字符(- 或者数字),能被浏览器解析的符号 <!DOCTYPE html> #这个是系统 ...
- js的以及前端框架
js定义:浏览器的脚本语言,用简单的语言实现浏览器的操控 基础语法:基础的运算.函数.对象(原型链.对象构造.class) 所有的框架都是基于原生的js来进行的 js的事件:什么时候.什么情况下处理的 ...
- Eclipse使用Maven时出现:Index downloads are disabled, search results may be incomplete.问题解决
https://www.cnblogs.com/EasonJim/p/6674099.html 1.全局设置 [Windows]->[Preferences]->[Maven]->勾 ...
- oracle使用flashback时,没有显示undosql
这是因为oracle11g没有开启这个功能 用管理员用户sys(也就是sysdba)执行以下语句即可 alter databases add supplemental log data; 如果我们想恢 ...
- 使用skipper 扩展fabio 的路由&&http proxy 功能
skipper 具有强大的http 路由功能,fabio 是一个方便的基于consul 的负载均衡软件, 我们可以方便的使用skipper 路由功能进行fabio的扩展,使用registrator 进 ...
- oracle-对象表-外部表
http://www.blogjava.net/decode360/archive/2008/10/16/286802.html create or replace type person as ob ...
- TypeScript 之 声明文件的使用
https://www.tslang.cn/docs/handbook/declaration-files/consumption.html 下载 在TypeScript 2.0以上的版本,获取类型声 ...