当前位置: 首页 > news >正文

网站开发不让搜索引擎商丘网站建设公司

网站开发不让搜索引擎,商丘网站建设公司,网站索引量下降,怎么做自己的网站后台教程Go语言基础语法一. golang 标识符,关键字,命名规则二. golang 变量三. golang 常量四. golang 数据类型五. golang 布尔类型六. golang 数字类型七. golang 字符串1. go语言字符串字面量2. go语言字符串连接(1). 使用加号(2). 使用 fmt.Sprintf() 函数(3…

Go语言基础语法

  • 一. golang 标识符,关键字,命名规则
  • 二. golang 变量
  • 三. golang 常量
  • 四. golang 数据类型
  • 五. golang 布尔类型
  • 六. golang 数字类型
  • 七. golang 字符串
    • 1. go语言字符串字面量
    • 2. go语言字符串连接
      • (1). 使用加号
      • (2). 使用 fmt.Sprintf() 函数
      • (3). strings.Join()
      • (4). buffer.WriteString()
    • 3. go语言字符串转义字符
    • 4. go语言字符串切片操作
    • 5. go语言字符串常用方法
  • 八. golang格式化输出
  • 九. golang运算符
    • 1. 算术运算符
    • 2. 关系运算符
    • 3. 逻辑运算符
    • 4. 位运算符
    • 5. 赋值运算符
  • 十. golang流程控制
    • 1. if 语句
    • 2. if else 语句
    • 3. if else if 语句
    • 4. 嵌套 if 语句
    • 4. switch语句
    • 5. for 循环语句
    • 6. for range 循环语句

一. golang 标识符,关键字,命名规则

在这里插入图片描述

二. golang 变量

在这里插入图片描述

三. golang 常量

在这里插入图片描述

四. golang 数据类型

在这里插入图片描述

五. golang 布尔类型

在这里插入图片描述

六. golang 数字类型

在这里插入图片描述

七. golang 字符串

1. go语言字符串字面量

在Go语言中,字符串字面量使用双引号 “” 或者反引号 ’ 来创建。双引号用来创建可解析的字符串,支持转义,但不能用来引用多行;反引号用来创建原生的字符串字面量,可能由多行组成,但不支持转义,并且可以包含除了反引号外其他所有字符。双引号创建可解析的字符串应用最广泛,反引号用来创建原生的字符串则多用于书写多行消息,HTML以及正则表达式。

package mainimport ("fmt"
)func main() {var s1 string = "hello world"var s2 string = `<html><head><title> hello world </title></html>`fmt.Printf("s1: %v\n", s1)fmt.Printf("s2: %v\n", s2)
}

运行结果

s1: hello world
s2: <html><head><title> hello world </title></html>

2. go语言字符串连接

(1). 使用加号

package mainimport ("fmt"
)func main() {name := "lyp"age := "20"msg := name + " is " + agefmt.Printf("msg: %v\n", msg)msg = ""msg += namemsg += " is "msg += agefmt.Printf("msg: %v\n", msg)}

运行结果

msg: lyp is 20
msg: lyp is 20

(2). 使用 fmt.Sprintf() 函数

package mainimport ("fmt"
)func main() {name := "lyp"age := "20"msg := fmt.Sprintf("%s is %s", name, age)fmt.Printf("msg: %v\n", msg)}

运行结果

msg: lyp is 20

(3). strings.Join()

package mainimport ("fmt""strings"
)func main() {name := "lyp"age := "20"msg := strings.Join([]string{name, age}, " is ")fmt.Printf("msg: %v\n", msg)}

运行结果

msg: lyp is 20

(4). buffer.WriteString()

package mainimport ("bytes""fmt"
)func main() {var buffer bytes.Bufferbuffer.WriteString("lyp")buffer.WriteString(" is ")buffer.WriteString("20")fmt.Printf("buffer.String(): %v\n", buffer.String())}

运行结果

buffer.String(): lyp is 20

3. go语言字符串转义字符

Go 语言的字符串常见转义符包含回车、换行、单双引号、制表符等,如下表所示
在这里插入图片描述

package mainimport "fmt"func main() {fmt.Printf("hello\tworld\n")fmt.Printf("\"c:\\test\\\"")}

运行结果

hello   world
"c:\test\"

4. go语言字符串切片操作

package mainimport "fmt"func main() {str := "hello world"n := 3m := 5fmt.Println(str[n])   //获取字符串索引位置为n的原始字节fmt.Println(str[n:m]) //截取得字符串索引位置为 n 到 m-1 的字符串fmt.Println(str[n:])  //截取得字符串索引位置为 n 到 len(s)-1 的字符串fmt.Println(str[:m])  //截取得字符串索引位置为 0 到 m-1 的字符串}

运行结果

108
lo
lo world
hello

5. go语言字符串常用方法

在这里插入图片描述

package mainimport ("fmt""strings"
)func main() {s := "hello world!"fmt.Printf("len(s): %v\n", len(s))fmt.Printf("strings.Split(s, \"\"): %v\n", strings.Split(s, " "))fmt.Printf("strings.Contains(s, \"hello\"): %v\n", strings.Contains(s, "hello"))fmt.Printf("strings.HasPrefix(s, \"hello\"): %v\n", strings.HasPrefix(s, "hello"))fmt.Printf("strings.HasSuffix(s, \"world!\"): %v\n", strings.HasSuffix(s, "world!"))fmt.Printf("strings.Index(s, \"l\"): %v\n", strings.Index(s, "l"))fmt.Printf("strings.LastIndex(s, \"l\"): %v\n", strings.LastIndex(s, "l"))
}

运行结果

len(s): 14
strings.Split(s, ""): [hello world!]
strings.Contains(s, "hello"): true
strings.HasPrefix(s, "hello"): true
strings.HasSuffix(s, "world!"): true
strings.Index(s, "l"): 2
strings.LastIndex(s, "l"): 9

八. golang格式化输出

在这里插入图片描述

package mainimport "fmt"type WebSite struct {Name string
}func main() {site := WebSite{Name: "lyp"}fmt.Printf("site: %v\n", site)fmt.Printf("site: %#v\n", site)fmt.Printf("site: %T\n", site)fmt.Println("%%")b := truefmt.Printf("b: %t\n", b)i := 8fmt.Printf("i: %v\n", i)fmt.Printf("i: %b\n", i)i = 96fmt.Printf("i: %c\n", i)fmt.Printf("i: %x\n", i)x := 100p := &xfmt.Printf("p: %v\n", p)}

运行结果

site: {lyp}
site: main.WebSite{Name:"lyp"}
site: main.WebSite
%%
b: true
i: 8
i: 1000
i: `
i: 60
p: 0xc000016120

九. golang运算符

1. 算术运算符

在这里插入图片描述

++(自增)和–(自减)在Go语言中是单独的语句,并不是运算符(不能用在表达式中)

package mainimport "fmt"func main() {a := 100b := 10fmt.Printf("(a + b): %v\n", (a + b))fmt.Printf("(a - b): %v\n", (a - b))fmt.Printf("(a * b): %v\n", (a * b))fmt.Printf("(a / b): %v\n", (a / b))fmt.Printf("(a %% b): %v\n", (a % b))a++fmt.Printf("a: %v\n", a)b--fmt.Printf("b: %v\n", b)
}

2. 关系运算符

在这里插入图片描述

package mainimport "fmt"func main() {a := 1b := 2fmt.Printf("(a > b): %v\n", (a > b))fmt.Printf("(a < b): %v\n", (a < b))fmt.Printf("(a >= b): %v\n", (a >= b))fmt.Printf("(a <= b): %v\n", (a <= b))fmt.Printf("(a == b): %v\n", (a == b))fmt.Printf("(a != b): %v\n", (a != b))
}

3. 逻辑运算符

在这里插入图片描述

package mainimport "fmt"func main() {a := trueb := falsefmt.Printf("(a && b): %v\n", (a && b))fmt.Printf("(a || b): %v\n", (a || b))fmt.Printf("(!a): %v\n", (!a))fmt.Printf("(!b): %v\n", (!b))
}

4. 位运算符

在这里插入图片描述

package mainimport "fmt"func main() {a := 4 // 二进制 100fmt.Printf("a: %b\n", a)b := 8 // 二进制 1000fmt.Printf("b: %b\n", b)fmt.Printf("(a & b): %v, %b \n", (a & b), (a & b))fmt.Printf("(a | b): %v, %b\n", (a | b), (a | b))fmt.Printf("(a ^ b): %v, %b\n", (a ^ b), (a ^ b))fmt.Printf("(a << 2): %v, %b\n", (a << 2), (a << 2))fmt.Printf("(b >> 2): %v, %b\n", (b >> 2), (b >> 2))
}

5. 赋值运算符

在这里插入图片描述

package mainimport "fmt"func main() {var a inta = 100fmt.Printf("a: %v\n", a)a += 1 // a = a + 1fmt.Printf("a: %v\n", a)a -= 1 // a = a -1fmt.Printf("a: %v\n", a)a *= 2 // a = a * 2fmt.Printf("a: %v\n", a)a /= 2 // a = a / 2fmt.Printf("a: %v\n", a)
}

十. golang流程控制

1. if 语句

if 布尔表达式 {/* 在布尔表达式为 true 时执行 */
}

(1). 不需使用括号将条件包含起来
(2). 大括号{}必须存在,即使只有一行语句
(3). 左括号必须在if或else的同一行
(4). 在if之后,条件语句之前,可以添加变量初始化语句,使用;进行分隔
(5). 不能使用0或非0表示真假

func test3() {if age := 20; age > 18 {fmt.Println("你是成年人")}fmt.Printf("程序运行结束")
}func main() {// test1()// test2()test3()
}
func test4() {var i = 1if i { // 编译失败fmt.Println("here")}fmt.Printf("程序运行结束")
}

2. if else 语句

if 布尔表达式 {/* 在布尔表达式为 true 时执行 */
} else {/* 在布尔表达式为 false 时执行 */
}
func f2() {var s intfmt.Println("输入一个数字:")fmt.Scan(&s)if s%2 == 0 {fmt.Print("s 是偶数\n")} else {fmt.Print("s 不是偶数\n")}fmt.Print("s 的值是:", s)
}

3. if else if 语句

if 布尔表达式1 {// do something
} else if 布尔表达式2 {// do something else
}else {// catch-all or default
}
func f5() {if score := 80; score >= 60 && score <= 70 {fmt.Println("C")} else if score > 70 && score <= 90 {fmt.Println("B")} else {fmt.Println("A")}
}

4. 嵌套 if 语句

if 布尔表达式 1 {/* 在布尔表达式 1 为 true 时执行 */if 布尔表达式 2 {/* 在布尔表达式 2 为 true 时执行 */}
}
func f2() {// 判断男女生及年龄gender := "女生"age := 16if gender == "男生" {fmt.Println("男生")if age > 18 {fmt.Println("成年")} else {fmt.Println("未成年")}} else {fmt.Println("女生")if age > 18 {fmt.Println("成年")} else {fmt.Println("未成年")}}
}

4. switch语句

switch var1 {case val1:...case val2:...default:...
}
func f() {grade := "A"switch grade {case "A":fmt.Println("优秀")case "B":fmt.Println("良好")default:fmt.Println("一般")}
}

多条件匹配

func f() {day := 3switch day {case 1, 2, 3, 4, 5:fmt.Println("工作日")case 6, 7:fmt.Println("休息日")}
}

case 可以是条件表达式

func f() {score := 90switch {case score >= 90:fmt.Println("享受假期")case score < 90 && score >= 80:fmt.Println("好好学习吧!")default:fmt.Println("玩命学习!")}
}

fallthrough 强制执行后面的一个 case 代码
fallthrough 不能用在switch的最后一个分支

switch {case false:fmt.Println("The integer was <= 4")fallthroughcase true:fmt.Println("The integer was <= 5")fallthroughcase false:fmt.Println("The integer was <= 6")fallthroughcase true:fmt.Println("The integer was <= 7")fallthroughcase false:fmt.Println("The integer was <= 8")default:fmt.Println("default case")
}

5. for 循环语句

go语言中的 for 循环,只有 for 关键字,去除了像其他语言中的 while 和 do while

for 初始语句;条件表达式;结束语句{循环体语句
}
func f() {for i := 1; i <= 10; i++ {fmt.Printf("i: %v\n", i)}
}func f() {i := 1for ; i <= 10; i++ {fmt.Printf("i: %v\n", i)}
}func f() {i := 1 // 初始条件for i <= 10 {fmt.Printf("i: %v\n", i)i++ // 结束条件}
}

for循环可以通过 break goto return panic 语句强制退出循环。

6. for range 循环语句

Go语言中可以使用 for range 遍历数组、切片、字符串、map 及通道(channel)。通过for range遍历的返回值有以下规律

1.数组、切片、字符串返回索引和值。
2.map返回建和值。
3.通道(channel)只返回通道内的值。

// 循环数组
func f() {var a = [5]int{1, 2, 3, 4, 5}for i, v := range a {fmt.Printf("i: %d, v: %v\n", i, v)}
}func main() {f()
}// 循环字符串
func f() {var s = "多课网,go教程"for i, v := range s {fmt.Printf("i: %d, v: %c\n", i, v)}// %c 按照字符输出
}func main() {f()
}// 循环切片
func f() {var s = []int{1, 2, 3, 4, 5}for i, v := range s {fmt.Printf("i, %d, v: %v\n", i, v)}
}func main() {f()
}// 循环 map
func f() {m := make(map[string]string)m["name"] = "tom"m["age"] = "20"m["email"] = "tom@gmail.com"for k, v := range m {fmt.Printf("k: %v, v: %v\n", k, v)}
}func main() {f()
}
http://www.hkea.cn/news/678219/

相关文章:

  • 身高差效果图网站优化师和运营区别
  • 谷歌wordpress建站搜索引擎算法
  • .net 购物网站开发源代码发布信息的免费平台
  • 自己做一网站大学生网络营销策划书
  • 关于网站建设的文章百度域名收录提交入口
  • 国人在线做网站推广图片大全
  • 郑州网站建设七彩科技四年级说新闻2023
  • 在什么网站上做自媒体seo整站怎么优化
  • 网站开发要注意安全性公司优化是什么意思
  • 河北邢台做移动网站开通网站需要多少钱
  • 天河网站建设多少钱淘宝关键词优化
  • 中型网站 收益关键词排名查询官网
  • 网站的弹窗是怎么做的谈谈对seo的理解
  • 广州网站制作费用宁波seo外包哪个品牌好
  • 河南高端网站建设广州网站优化页面
  • 企业可以备案几个网站南昌seo实用技巧
  • 网站用什么布局专业网站建设公司
  • 公司网站怎么做分录it培训机构学费一般多少
  • 如何将自己做的网页做成网站绍兴seo
  • 河南省住房与城乡建设厅网站首页怎么做属于自己的网站
  • 移动端网站开发推广效果最好的平台
  • 用二级页面做网站的源代码自助建站系统破解版
  • 网站上怎么做动画广告推广策略包括哪些内容
  • 广州网站优化公司大亚湾发布
  • 广州网站开发招聘百度经验悬赏令
  • 吴江建设局网站郑州粒米seo外包
  • 建设工程合同纠纷与劳务合同纠纷seo培训教程视频
  • 找网站建设公司哪家最好沈阳市网站
  • sh域名做的好的网站什么是营销
  • 网站平台怎么做推广一站式网络推广服务