变量的作用域
当变量被声明以后,它就进入了作用域(变量就变得可见了)。
只要变量在作用域内,你就可以访问它
否则,访问它会报错的
变量声明的位置,决定了它的作用域。
作用域的好处?
可以在不同的作用域内使用相同的变量名
在 Go 里面,作用域的范围就是 { } 之间的部分
count 变量就是在 function 作用域内
num 的作用域就是 for 的循环体
变量的初始值
编程语言
未读分支if分支生活中我们会遇到一些判断的情况,比如你考了80分以上回家会有奖励,考了60分以下回家会挨打。某个影视作品开了会员你才可以看。针对这些情况在代码里我们配合布尔类型,采用分支进行判断
1234567891011121314151617181920package mainimport ( "fmt")func main() { name := "xiu" score := 99 if score >= 80 { fmt.Println(name, "回家有奖品") } else if score >= 60 && score < 80 { fmt.Println(name, "回家可以正常吃饭") } else { fmt.Println(name, "回家要挨打!!") }}
获取键盘输入来自定义姓名与成绩123456789101112131415161718 ...
编程语言
未读1234567891011121314package mainimport "fmt"func main() { //常量与变量 const PI = 3.14 //声明一个常量 var x = 10 //声明一个变量 fmt.Println(PI, x) //打印常量PI与变量x的值 x = 1 //改变变量x的值 fmt.Println(x) //打印修改后的变量x的值}
当我们尝试改变常量PI的数值,编辑器报错
什么是常量,带入我们数学试卷中,π作为一个固定的数值在全国乃至全世界任何地方都是固定的值,你不能改变π的数值进行运算,否则你就不得分(程序报错),他就是常量
什么是变量,一张试卷的多个方程题存在多个x,y,不同题目(不同程序)的x,y可以是不同的值,这就是变量
变量的标准声明格式var [变量名] [变量类型]变量只有声明后才可以使用,也就是说你要找某个人作任何事情,这个人首先要存在,你可以先声明再赋值使用
你也可以声明的同时赋值
对于初学者来说比较纳闷的点就是关于类型 ...
go语言介绍
Go 语言是编译语言。
在你运行程序之前,Go 首先使用编译器把你的代码转换成机器能够读懂的 1 和 0。
它会把你所有的代码编译成一个可执行文件,在编译的过程中,Go编译器能够捕获一些错误。
Python、Ruby 等很多语言都是使用解释器,随着程序的运行,一个语句一个语句的进行翻译。但这也意味着 bug 可能就潜伏在你还没有测试过的路径上。
这些是解释型语言。
环境安装12https://studygolang.com/https://www.runoob.com/go/go-environment.html
访问go语言中文网下载安装包,按照菜鸟教程的详细步骤安装
环境变量修改为自己安装的路径,我本人放在虚拟机里所以在C盘,推荐真实机放到D盘等非系统盘专用目录下
编辑器选择自己习惯的即可
开始}
//截图漏了个大括号补上(严谨)
Print,Println,Printf
Printf叫做格式化输出,初学者理解起来比较困难,先记住使用方式,随着深入使用即使不记忆也会慢慢
版本控制软件更新,区别于老的版本与新的版本之间,版本回滚等操作,git,svn等主流版本控制器
分类本地版本控制适合个人使用,对每个版本做对比
集中式版本控制(SVN)所有版本数据都保存在服务器上,开发者从服务器上同步更新或上传自己的修改,多对一,存在单点故障问题
分布式版本控制(GIT)每个人都拥有全部代码,可以在本地查看所有历史版本,可以本地提交,联网以后再与服务器同步,也不会因为网络问题导致无法工作
安装https://git-scm.com/
一路下一步
环境配置安装好找个目录
12git config --global user.name "user"git config --global user.email "123@qq.com"
工作原理Workspace:工作区,存放项目代码的地方
Index/Stage:暂存区,临时存放改动的代码
Repository:本地仓库区,所有版本的数据
Remote:远程仓库,托管代码的服务器
git项目创建本地仓库搭建1git init #在当前目录新建一个git代码库
克隆远 ...
概念Serialization(序列化):将java对象以一连串的字节保存在磁盘文件中的过程,也可以说是保存java对象状态的过程。序列化可以将数据永久保存在磁盘上(通常保存在文件中)。
deserialization(反序列化):将保存在磁盘文件中的java字节码重新转换成java对象称为反序列化
优点说一个跟我们网安息息相关的,利用序列化实现远程通信,在网络上传输字节序列
相关apiJDK类库提供的序列化API:
12345java.io.ObjectOutputStream 表示对象输出流,其中writeObject(Object obj)方法可以将给定参数的obj对象进行序列化,将转换的一连串的字节序列写到指定的目标输出流中。 java.io.ObjectInputStream该类表示对象输入流,该类下的readObject(Object obj)方法会从源输入流中读取字节序列,并将它反序列化为一个java对象并返回。
序列化与反序列化创建一个可以被序列化的类,实现序列化的类对象必须实现了Serializable类或Externalizable类才能被序列化,否则会 ...
什么是docker虚拟化技术
2013年基于GO语言开发
为什么火起来了(必要性)代码从开发到正式投入生产需要经过三个环境,开发环境,测试环境,生产环境
测试、运维人员操作成本过大
docker支持迁移整个容器的应用以及环境到Linux机器上
相互隔离
开销低
docker与vmware的区别vmware:完整的硬件与操作系统环境,占资源,速度慢
docker:不是完整的环境,内核复用,相互隔离,安全
安装docker支持linux,windows,mac等操作系统
123456789101112131415#卸载旧版本yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logr ...
linux
未读
区域文件cd /var/named/jd.com.zone
修改文件,作为jd.com的解析文件
1234567yum install httpd -ycd /var/www/htmlsystemctl stop firewalldiptables -t nat -nvL
开启路由转发echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -p all -o ens37 -j SNAT –to-source 192.168.242.130
如果命令写错了
先执行如下命令,清空原有的表
iptables -t nat -F
危害内网dns被控会导致所有主机再访问指定网站时去往攻击者假设的钓鱼页面,危害十分大