Go语言学习1

1.程序的基本框架

package main

import "fmt"

func main(){
    fmt.Print("hello world")
}

 注:fmt.Println可以自动换行

println和print支持变量print(arr)其中arr为变量

当标识符为大写字母开头时,可以被客户端使用,但是前提是导入这个包

当标识符为小写字母开头时,对外不可见但是对包内可见

执行代码打开命令行应用 go run  

2.基本语法

语句之间不需要用;来表示语句的结束,使用换行即可

当多个语句在同一行时也可以使用;来分隔句子

标识符不可_下划线开头,字符不可以用运算符,字符连接用+

fmt.Println("Google" + "Runoob")

格式化字符

用fmt.Sprintf赋值

package main

import (
    "fmt"
)

func main() {
   // %d 表示整型数字,%s 表示字符串
    var stockcode=123
    var enddate="2020-12-31"
    var url="Code=%d&endDate=%s"
    var target_url=fmt.Sprintf(url,stockcode,enddate)
    fmt.Println(target_url)
}

3.字符类型

有符号int无符号uint后跟数字表示长度

float和complex分别表示  浮点数  和  实数+虚数

uintptr存一个指针

4.语言变量!!

var identifier type  声明变量

1.未声明的变量会被系统赋予初始值

bool的零值为false

2.也可以在定义变量的时候直接赋值不用声明数据类型

var a = 1;则直接给a为int 类型且赋值为1

  1. %v 只输出所有的值
  2. %+v 先输出字段类型,再输出该字段的值
  3. %#v 先输出结构体名字值,再输出结构体(字段类型+字段的值

声明两次时系统编译错误

var intVal int 
intVal :=1 // 这时候会产生编译错误,因为 intVal 已经声明,不需要重新声 //:=声明变量

正确赋值方式
var intVal int 
intVal =1 

3.赋值

 a:=可以直接赋值,等效于var a int  /n a = 

可以同时定义类型相同的多个变量var a,b,c int

//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3

var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要显示声明类型,自动推断

vname1, vname2, vname3 := v1, v2, v3 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误

使用变量需定义,局部变量定义必须使用但是全局变量未必,可以定义且储存不使用

5.定义常量iota

const identifier [type] = value 
  • 显式类型定义: const b string = "abc"
  • 隐式类型定义: const b = "abc

i=a<<n表示在左移

注:<<n==*(2^n)

  • i=1:左移 0 位,不变仍为 1。
  • j=3:左移 1 位,变为二进制 110,即 6。
  • k=3:左移 2 位,变为二进制 1100,即 12。
  • l=3:左移 3 位,变为二进制 11000,即 24。

在const中每出现一次常量iota的值自动加一

6.运算符

算数符与关系符与逻辑符与c无异u不做过多赘述;

关于位运算符

与就是都有1时取1 或就是有1时取1 异就是相异取1

运算结果会自动转化为十进制,但是运算过程使用二进制并且不会超过八位

 6.语言条件语句

 IF IF~ELSE SWITCH与c无异不做赘述

select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。

#select语句

7.循环

for 条件 {}

for i=x;i<=N;i++ {}

goto相当于return

例:用for循环寻找1-100的素数

func t01_test2() {
    const RANGE = 100
    for num := 2; num <= RANGE; num++ {
        // 当前因数 factor 对应的另一个因数就是 num / factor。
        // 当前者大于后者时,可以认为所有因数已经分析完毕。
        for factor := 2; factor <= (num / factor); factor++ {
            //能除尽,则表示 factor 是 num 的一个因子。那么num就不是素数。
            if num%factor == 0 {
                goto NEXT_NUM
            }
        }
        fmt.Printf("%d\t是素数\n", num)
    NEXT_NUM:
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Go语言学习CSDN"指的是在中国最大的IT技术专业社区CSDN上学习Go语言。作为一门新兴的编程语言Go语言Google开发,具有简洁、高效、强大的特点,广泛应用于网络编程和分布式系统开发。 在CSDN学习Go语言有以下几个好处。首先,CSDN是中国最大的IT技术专业社区,拥有海量的技术文章、教程和学习资料。在CSDN可以找到大量关于Go语言学习资源,包括入门教程、深入剖析、项目实战等。这些资源可以帮助初学者快速入门,提高学习效率。 其次,CSDN上有活跃的技术社区和问答板块。学习者可以在这里提问、交流和分享经验。在学习Go语言过程中遇到困惑或问题时,可以通过发帖提问获取帮助。也可以浏览他人提问的解答,学习其他人的经验和技巧。 另外,CSDN还有专业的技术博客和技术讲座。在这些博客和讲座中,一些有经验的Go语言开发者会分享自己的实践心得、案例分析和最佳实践,对于学习者来说是很宝贵的学习资源。 最后,CSDN还有一些Go语言学习社群和论坛。学习者可以加入这些社群,与其他Go语言爱好者一起讨论和学习。这些社群通常有线上和线下的活动,参与其中可以结识更多志同道合的人,扩展自己的人脉和交流圈。 总而言之,在CSDN学习Go语言可以获得丰富的学习资源、交流机会和实践经验,对于快速掌握这门语言非常有帮助。不仅如此,CSDN也是一个互联网技术圈的门户,通过学习Go语言还可以了解其他热门技术和行业趋势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值