找回密码
 立即注册
首页 业界区 安全 2.Go基础语法

2.Go基础语法

袋岖荤 5 天前
1.  fmt
  1. package main
  2. import "fmt"
  3. func main() {
  4.     fmt.Println("Hello World")
  5.     fmt.Println("打印中文")
  6.     fmt.Print("我不换行打印", "后面还有。")
  7.     fmt.Printf("我是%s,中间拼接\n", "敬YES")
  8.     fmt.Println("我是", "敬YES")
  9.     //拼接的字符串放到一个变量中
  10.     temp := fmt.Sprintf("我叫%s,今年%d岁,身高%f米\n", "张三", 20, 1.75)
  11.     fmt.Println(temp)
  12. }
复制代码

  • fmt.printf: 格式化打印
  • fmt.Sprintf: 格式化后的字符串存到一个变量中
  • fmt.Println: 换行打印
2. 变量

定义变量

  • var关键字定义变量
  • 语法糖直接给变量赋值
变量类型:reflect.TypeOf(temp)
  1. package main
  2. import "fmt"
  3. import "reflect"
  4. func main() {
  5.     //第一种:使用var关键字定义变量
  6.     //1.var 关键字定义变量
  7.     var name string = "敬YES"
  8.     fmt.Println("我的名字是", name)
  9.   
  10.     //2.先用var定义变量,再赋值
  11.     var age int
  12.     age = 30
  13.     fmt.Println("我的年龄是", age)
  14.     //3.多变量同时定义
  15.     var a, b, c int = 1, 2, 3
  16.     fmt.Println("a,b,c的值是", a, b, c)
  17.     //4.定义多个变量类型不同
  18.     var (
  19.         name2 string = "敬YES"
  20.         age2  int    = 30
  21.         sex   string = "男"
  22.     )
  23.     fmt.Println("我的名字是", name2, "我的年龄是", age2, "我的性别是", sex)
  24.     //第二种:使用语法糖定义变量
  25.     isvalid := true
  26.     fmt.Println(isvalid)
  27.   
  28.     //如何确定变量类型
  29.     var temp = 100
  30.     fmt.Printf("temp的类型是%T\n", temp)
  31.     //reflect.TypeOf() 获取变量类型
  32.     fmt.Println(reflect.TypeOf(temp))
  33. }
复制代码
3. 常量

const关键字定义常量
  1. func main() {
  2.     const a, b, c = 1, 2, 3
  3.     fmt.Println(a, b, c)
  4. }
复制代码
4. 函数和作用域

func关键字自定义函数
  1. func main() {
  2.     printAd()
  3. }
  4.   
  5. func printAd() {
  6.     fmt.Println("Hello World")
  7.     fmt.Printf("课程免费体验")
  8. }
复制代码
注意:全局变量不能使用语法糖声明
  1. var name string = "全局变量"
  2. //错误
  3. name3 :="全局语法糖"
复制代码
5. 字符串和数值运算
  1. func numOperation(a, b int) {
  2.     fmt.Println("数值运算:")
  3.     fmt.Printf("%d + %d =%d\n", a, b, a+b)
  4.     fmt.Printf("%d - %d =%d\n", a, b, a-b)
  5. }
  6. func stringOperation(a, b string) {
  7.     result := fmt.Sprintf("%s %s", a, b)
  8.     fmt.Printf("%s和%s拼接结果是:%s\n", a, b, result)
  9. }
  10.   
  11. func display(name string, age int) {
  12.     result := fmt.Sprintf("你好,我叫%s,今年%d岁。", name, age)
  13.     fmt.Println(result)
  14. }
复制代码
除法,要注意类型转换
  1. fmt.Printf("%d / %d = %f \n", a, b, float32(a)/float32(b))
复制代码
6. for循环

for和if语句不加括号
  1. func main() {
  2.     count := 0
  3.     for i := 0; i < 100; i++ {
  4.         if i%2 == 0 {
  5.             count++
  6.         }
  7.     }
  8.     fmt.Printf("偶数个数:%d", count)
  9. }
复制代码
go语言中实现while循环逻辑也用for循环
  1. func f2(num int) {
  2.     count := 0
  3.     i := 0
  4.     for i < num {
  5.         if i%2 == 1 {
  6.             count++
  7.         }
  8.     }
  9.     fmt.Printf("奇数个数:%d\n", count)
  10. }
复制代码
7. 时间格式化

间歇的写法:time.sleep(time.Second * 5)
获取当前时间:time.Now()
GO这个时间格式化有点搞笑:是用go语言的诞生时间 "2006-01-02 15:04:05"
  1. func f3() {
  2.     for {
  3.         fmt.Println("当前时间是:", time.Now().Format("2006/01/02 15:04:05"))
  4.         fmt.Println("当前时间是:", time.Now().Format("06/01/02 15:04"))
  5.         fmt.Println("你好")
  6.         time.Sleep(time.Second * 5)
  7.     }
  8. }
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册