包、mode模式、if-else语句、switch语句
包
//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语句的更多相关文章
- goto语句 switch语句
goto语句 #include <iostream> using namespace std; int main() { int i = 1; number: i++; std::cout ...
- 【C语言】-条件语句-switch语句
switch语句: 用于直接处理不同情况下的多路问题. switch语句又可称为开关语句,其执行流程和多分支if语句类似. switch (表达式) { case 常量表达式1:语句组1;break; ...
- Java ——if条件语句 switch语句
本节重点思维导图 if条件语句 //如果条件表达式成立,执行语句块 if(条件表达式){ //…语句块 } 如果语句块只有一条语句,大括号可以省略,否则不能省略. 建议,不管有几条语句,都不要省略大 ...
- 关系运算符 逻辑运算符 if 语句 switch语句
1. BOOL类型 BOOL isRightOrNo = YES; isRightOrNo = 56;//可以打印出来,在C语言中,非0即真 printf("%d\n" , isR ...
- 【JS】332- 为什么我更喜欢对象而不是 switch 语句
昨天偷懒了,欢迎点击关注???这样我就多更大的动力日更了- 正文从这里开始~~~ 最近(或者不是最近,这完全取决于您什么时候阅读这边文章),我正在跟我的团队伙伴讨论如何去处理这种需要根据不同的值去处理 ...
- java基础:switch语句应用,循环的详细介绍以及使用,附练习案列
1. switch语句 1.1 分支语句switch语句 格式 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default ...
- Java语法基础(三)----选择结构的if语句、switch语句
[前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过 ...
- 1203.2——条件语句 之 switch语句
用 if else 语句在处理多分支的时候,分支太多就会显得不方便,且容易出现 if 和 else配对出现错误的情况.例如,输入一个整数,输出该整数对应的星期几的英文表示: #include < ...
- 第二部分 条件控制执行语句、循环语句、switch语句、跳转语句和其它语句
条件控制执行语句: if语句 if....else....语句 循环语句: while语句 do....while语句 for语句 switch语句: 跳转语句: break; continue; r ...
- 7.21.02 switch语句
switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法 switch语法格式如下: switch(expression) { case value : //语句 break ...
随机推荐
- Servlet(五)----ServletContext对象
## ServletContext对象 1.概念:代表整个web应用,可以和程序的容器(服务器)来通信 2.获取: 1.通过request对象获取 request.getServletContext ...
- 服务器安装 mongodb
参考 https://www.cnblogs.com/layezi/p/7290082.html
- Redis学习笔记2-redis管道(pipeline)
redis的管道(Pipelining)操作是一种异步的访问模式,一次发送多个指令,不同步等待其返回结果.这样可以取得非常好的执行效率.这就是管道,调用方法如下: 来源:http://blog.csd ...
- TortoiseGit 与 Putty 配置冲突导致 Server refuse our key
tortoisegit是TortoiseSVN的Git版本,tortoisegit用于迁移TortoiseSVN到TortoiseGit,一直以来Git在Windows平台没有好用GUI客户端,现在t ...
- TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人。
简介 TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人. 文章包括一下几个部分: 1.为什么要尝试做这个项目? 2.为 ...
- 使用Python+OpenCV进行图像处理(三)| 视觉入门
检测是计算机视觉任务中的主要任务之一,而且应用很广泛.检测技术可以帮助人类检测那些容易被肉眼忽略的错误:也可以"帮助"自动驾驶汽车感知空间信息.无疑自动化的检测技术的广泛应用将为我 ...
- vue2.0开发环境下解决跨域问题
1.找到vue 项目下的配置文件 /config/index.js 2.找到 proxyTable 配置项 proxyTable: { '/api': { target: 'http://www.xx ...
- Mac LaTex中文环境搭建
为了在博客上写公式,折腾了一晚上Mac上的LaTex的环境搭建,本文对步骤进行记录. 系统:Mac OSX 10.10.5 软件准备 1) MacTex 2015 Distribution (Tex的 ...
- SpringApplication对象是如何构建的? SpringBoot源码(八)
注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 本篇接 SpringBoot的启动流程是怎样的?SpringBoot源码(七) 1 温故而知新 温故而知新,我们来简单回顾一下上 ...
- Material Design 组件之NavigationView
今天来看一下 NavigationView 的使用,NavigationView 是一个标准的导航菜单,其菜单内容由菜单资源文件来填充,NavigationView 一般和 DrawerLayout ...