//1 在同一个包下(文件夹下),包名必须一致
//2 以后,包名就是文件夹的名字
//3 同一个包下,同名函数只能有一个(init除外)
//4 一个包(当成一个文件),同一包下的函数,直接调用即可
//5 导包的位置,从src路径开始
//6 包只要在src路径下就可以导入
//7 大写表示导出,在外部包可以使用,小写只能在包内部适应
//8 使用第三方包:go get github.com/astaxie/beego (放到gopath的src路径下)
-python:pip3 install requests
package main
import "github.com/astaxie/beego" func main() {
beego.Run()
}

mode模式

//1 包导入 import . "github.com/astaxie/beego"  类似于python中form xx import *
//2 包导入 import _ "github.com/go-sql-driver/mysql" 触发init的执行,但是不试用包内的函数
//3 包导入 import f "fmt" 重命名,以后直接用f //4 对比python中__init__.py
//在代码中导入模块
import xx 实质上触发__init__.py 的执行(在__init__.py中也可以执行其他代码,对应到go中就是init函数)
一般情况下,在__init__.py写from xx import 会使用到的函数,导过来
以后再用 xx.函数() //5 go mod没有之前,可以设置多个gopath,开发某个项目,切到不同的gopath,类似于虚拟环境 //6 go env
-GO111MODULE="off" 表示go mod模式是关闭的,用gopath
-一旦开启了go mod模式,代码不需要放在src路径下(任意位置都可以)
-在项目路径下要有 go.mod 文件(文件里记录了,go版本,项目依赖的包,包的版本)
-写代码,建自己的包即可
-一般情况下,项目有一个main.go 内部是main包,main函数,整个程序的入口

if-else语句

//if-else
package main import "fmt" func main() {
//a:=9
//1 基本使用
if a>10{
fmt.Println("大于10")
}else {
fmt.Println("小于等于10")
} //2 if -else if -else
if a>10{
fmt.Println("大于10")
}else if a==10 {
fmt.Println("等于10")
}else {
fmt.Println("小于10")
} //3 不能换行(go语言每一行结尾,需要加一个; ,每当换行,会自动加;)
if a>10{
fmt.Println("大于10")
}else if a==10 {
fmt.Println("等于10")
}else
{
fmt.Println("小于10")
//} //4 条件里可以进行初始化操作(有作用域范围的区别)
a:=10;
if a<10{
if a:=10;a<10{
fmt.Println("xxx")
}else {
fmt.Println("yyyy")
}
fmt.Println(a) fmt.Println(a)
}

循环

//循环(只有for循环,没有while ,do while)
package main import "fmt" func main() {
//1 基本语法
//for 初始化;条件判断;自增/自减{ 循环体内容 } 三部分都可以省略
//打印0--9
for i:=0;i<10 ;i++ {
fmt.Println(i)
} //2 省略第一部分(初始化),作用域范围不一样
i:=0
for ;i<10 ; i++ {
fmt.Println(i)
} //3 省略第三部分
for i:=0;i<10 ; {
i++
fmt.Println(i)
} //4 省略第一和第三部分
i := 0
for ; i < 10; {
i++
fmt.Println(i)
} //5 这不就是while循环吗?
for 条件 {}
i := 0
for i < 10 {
i++
fmt.Println(i)
}
for true{
fmt.Println(1)
} //6 死循环(三部分都省略)
for {
fmt.Println(1)
} //7 break和continue(和python一样)
for {
fmt.Println(1)
//break
continue
}
}

switch语句

//switch
package main import "fmt" func main() {
// 1 switch 基本使用
a:=10
switch a {
case 1:
fmt.Println("1")
case 2:
fmt.Println(2)
case 9:
fmt.Println(9)
case 10:
fmt.Println("10")
} //2 default
a:=15
switch a {
case 1:
fmt.Println("1")
case 2:
fmt.Println(2)
case 9:
fmt.Println(9)
case 10:
fmt.Println("10")
default:
fmt.Println("不知道")
} //3 多条件
a:=3
switch a {
case 1,2,3:
fmt.Println("1")
case 4,5,6:
fmt.Println(2)
case 7,9:
fmt.Println(9)
case 10,16:
fmt.Println("10")
default:
fmt.Println("不知道")
} //4 无表达式
a:=3
switch {
case a==1 || a==3:
fmt.Println("1")
case a==4||a==5:
fmt.Println(2)
default:
fmt.Println("不知道")
} //5 fallthrough,无条件执行下一个case
a:=1
switch {
case a==1 || a==3:
fmt.Println("1")
//fallthrough //fallthrough 会无条件执行下一个case
case a==4||a==5:
fmt.Println(2)
fallthrough
default:
fmt.Println("不知道")
}
}

包、mode模式、if-else语句、switch语句的更多相关文章

  1. goto语句 switch语句

    goto语句 #include <iostream> using namespace std; int main() { int i = 1; number: i++; std::cout ...

  2. 【C语言】-条件语句-switch语句

    switch语句: 用于直接处理不同情况下的多路问题. switch语句又可称为开关语句,其执行流程和多分支if语句类似. switch (表达式) { case 常量表达式1:语句组1;break; ...

  3. Java ——if条件语句 switch语句

    本节重点思维导图  if条件语句 //如果条件表达式成立,执行语句块 if(条件表达式){ //…语句块 } 如果语句块只有一条语句,大括号可以省略,否则不能省略. 建议,不管有几条语句,都不要省略大 ...

  4. 关系运算符 逻辑运算符 if 语句 switch语句

    1. BOOL类型 BOOL isRightOrNo = YES; isRightOrNo = 56;//可以打印出来,在C语言中,非0即真 printf("%d\n" , isR ...

  5. 【JS】332- 为什么我更喜欢对象而不是 switch 语句

    昨天偷懒了,欢迎点击关注???这样我就多更大的动力日更了- 正文从这里开始~~~ 最近(或者不是最近,这完全取决于您什么时候阅读这边文章),我正在跟我的团队伙伴讨论如何去处理这种需要根据不同的值去处理 ...

  6. java基础:switch语句应用,循环的详细介绍以及使用,附练习案列

    1. switch语句 1.1 分支语句switch语句 格式 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default ...

  7. Java语法基础(三)----选择结构的if语句、switch语句

    [前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过 ...

  8. 1203.2——条件语句 之 switch语句

    用 if else 语句在处理多分支的时候,分支太多就会显得不方便,且容易出现 if 和 else配对出现错误的情况.例如,输入一个整数,输出该整数对应的星期几的英文表示: #include < ...

  9. 第二部分 条件控制执行语句、循环语句、switch语句、跳转语句和其它语句

    条件控制执行语句: if语句 if....else....语句 循环语句: while语句 do....while语句 for语句 switch语句: 跳转语句: break; continue; r ...

  10. 7.21.02 switch语句

    switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法 switch语法格式如下: switch(expression) { case value : //语句 break ...

随机推荐

  1. In Triangle Test / To Left Test

    2020-01-09 14:51:29 如何高效的判断一个点是否是包含在一个三角形的内部是计算几何里的一个基础问题. In Triangle Test问题也可以用来解决计算几何里的一个基础问题就是 凸 ...

  2. python-pathlib

    2019-12-12 04:27:17 我们知道在不同的操作系统中文件路径的组成方式是不同的,因此在python中关于路径的问题以往我们通常采用os.path.join来进行路径的字符串级别的串联,通 ...

  3. 报错代码:svn-http status413'requset entity too large

    报错代码:svn-http status413'requset entity too large 发现报错,判断问题.解决问题.记录问题. SVN服务器端排查过没有问题,其他客户端都能正常更新.只有一 ...

  4. SpringBoot使用RedisTemplate操作Redis时,key值出现 \xac\xed\x00\x05t\x00\tb

    原因分析 原因与RedisTemplate源码中的默认序列化方式有关 defaultSerializer = new JdkSerializationRedisSerializer( classLoa ...

  5. GitHub 运用实战入门,奶妈级教学

    ## 前言: 我不会用*官方*的语言告诉你Git 是什么,对此我表示深深得歉意--在我看来像CSDN.博客园.掘金等博客交流平台就是小的“GitHub”,只不过在这里更多的是一些零零散散的笔记或者文章 ...

  6. vue配置环境踩坑

    Vue 环境配置踩坑 目录 Vue 环境配置踩坑 windows下cnpm -v :无法将"cnpm"项识别为 cmdlet.函数.脚本文件或可运行程序的名称. windows下c ...

  7. JS 剑指Offer(二)二维数组中的查找

    04.在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. var ...

  8. 通用mapper常用注解

    通用mapper的作用: 自动实现单表的增删改查 常用注解使用 @Table 作用:建立实体类和数据库表之间的对应关系. 默认规则:实体类类名首字母小写作为表名.Employee 类→employee ...

  9. A 【NOIP2012 day2】疫情控制

    时间限制 : 20000 MS   空间限制 : 128000 KB 评测说明 : 2s,128m 问题描述 H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树,1 号城市是 ...

  10. vue中keepAlive的用法[返回页面不刷新]

    本文转载于時間蒼白了誓言_49b9 使用vue单页开发项目时遇到一个问题:在列表页进入详情页,按返回键返回列表页时页面刷新了,用户体验非常差啊!!!查阅了一下相关问题,使用解决这个问题,下面是我的使用 ...