精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go 語言字符串使用方式與技巧

開發 前端
本文我們介紹 Go 語言中字符串的使用方式,包括類型轉換、字符串操作、字符串拼接。除了使用標準庫 strconv? 進行字符串類型轉換之外,讀者朋友們也可以選擇三方庫,例如:github.com/spf13/cast。

01 、介紹

關于 Go 語言字符串的使用,我們需要了解標準庫 strconv 和標準庫 strings 的使用方式,它們分別用于字符串類型轉換和字符串操作。

本文我們重點介紹 Go 語言字符串使用方式與技巧。

02 、字符串類型轉換

Go 語言是強類型語言,在使用 Go 語言時,通常會遇到需要將字符串與其它類型相互轉換的場景。

此時,我們可以使用標準庫 strconv。

字符串 to 布爾

示例代碼:

func main() {
 v := "true"
 if s, err := strconv.ParseBool(v); err == nil {
  fmt.Printf("%T, %v\n", s, s)
 }
}

輸出結果:

bool, true

閱讀上面這段代碼,我們使用 func ParseBool(str string) (bool, error) 將字符串轉換為布爾。需要注意的是,該函數接收參數的值是有限制的,除了 1、t、T、TRUE、true、True、0、f、F、FALSE、false、False 之外,其它任何值都會返回 error。

字符串 to 浮點型

示例代碼:

func main() {
 v := "3.1415926535"
 if s, err := strconv.ParseFloat(v, 32); err == nil {
  fmt.Printf("%T, %v\n", s, s)
 }
 if s, err := strconv.ParseFloat(v, 64); err == nil {
  fmt.Printf("%T, %v\n", s, s)
 }
 if s, err := strconv.ParseFloat("NaN", 32); err == nil {
  fmt.Printf("%T, %v\n", s, s)
 }
 // ParseFloat is case insensitive
 if s, err := strconv.ParseFloat("nan", 32); err == nil {
  fmt.Printf("%T, %v\n", s, s)
 }
 if s, err := strconv.ParseFloat("inf", 32); err == nil {
  fmt.Printf("%T, %v\n", s, s)
 }
 if s, err := strconv.ParseFloat("+Inf", 32); err == nil {
  fmt.Printf("%T, %v\n", s, s)
 }
 if s, err := strconv.ParseFloat("-Inf", 32); err == nil {
  fmt.Printf("%T, %v\n", s, s)
 }
 if s, err := strconv.ParseFloat("-0", 32); err == nil {
  fmt.Printf("%T, %v\n", s, s)
 }
 if s, err := strconv.ParseFloat("+0", 32); err == nil {
  fmt.Printf("%T, %v\n", s, s)
 }
}

輸出結果:

float64, 3.1415927410125732
float64, 3.1415926535
float64, NaN
float64, NaN
float64, +Inf
float64, +Inf
float64, -Inf
float64, -0
float64, 0

閱讀上面這段代碼,我們使用 func ParseFloat(s string, bitSize int) (float64, error) 將字符串轉換為 64 位浮點數。需要注意的是,該函數接收參數可以識別值為 NaN、Inf(有符號 +Inf 或 -Inf),并且忽略它們的大小寫。

字符串 to 整型

示例代碼:

func main() {
 v32 := "-354634382"
 if s, err := strconv.ParseInt(v32, 10, 32); err == nil {
  fmt.Printf("s:%T, %v\n", s, s)
 }
 if s1, err := strconv.ParseInt(v32, 16, 32); err == nil {
  fmt.Printf("s1:%T, %v\n", s1, s1)
 }

 v64 := "-3546343826724305832"
 if s2, err := strconv.ParseInt(v64, 10, 64); err == nil {
  fmt.Printf("s2:%T, %v\n", s2, s2)
 }
 if s3, err := strconv.ParseInt(v64, 16, 64); err == nil {
  fmt.Printf("s3:%T, %v\n", s3, s3)
 }
}

輸出結果:

s:int64, -354634382
s2:int64, -3546343826724305832

閱讀上面這段代碼,我們使用 func ParseInt(s string, base int, bitSize int) (i int64, err error) 將字符串轉換為整型。

需要注意的是,該函數的第一個入參為字符串類型的數值,可以 "+" 或 "-" 符號開頭;

第二個參數指定進制,它的值如果是 0,進制則以第一個參數符號后的前綴決定,例如:"0b" 為 2,"0" 或 "0o" 為 8,"0x" 為 16,否則為 10;

第三個參數指定返回結果必須符合整數類型的取值范圍,它的值為 0、8、16、32 和 64,分別代表 int、int8、int16、int32 和 int64。

細心的讀者朋友們可能已經發現,示例代碼中,第 2 和 第 4 返回錯誤,原因是第二個參數指定的進制與第一個參數的數值不相符,超出取值范圍。

此外,函數 func ParseUint(s string, base int, bitSize int) (uint64, error) 與之類似,但是用于無符號整數。

在實際項目開發中,十進制使用的最多,所以標準庫 strconv 提供了函數 func Atoi(s string) (int, error),它的功能類似 ParseInt(s, 10, 0),需要注意的是,它的返回值類型是 int(需要注意取值范圍),而不是 int64。

布爾 to 字符串

示例代碼:

func main() {
 v := true
 s := strconv.FormatBool(v)
 fmt.Printf("%T, %v\n", s, s)
}

輸出結果:

string, true

閱讀上面這段代碼,我們使用 func FormatBool(b bool) string 將布爾轉換為字符串。

浮點型 to 字符串

示例代碼:

func main() {
 v := 3.1415926535

 s32 := strconv.FormatFloat(v, 'E', -1, 32)
 fmt.Printf("%T, %v\n", s32, s32)

 s64 := strconv.FormatFloat(v, 'E', -1, 64)
 fmt.Printf("%T, %v\n", s64, s64)

 fmt64 := strconv.FormatFloat(v, 'g', -1, 64)
 fmt.Printf("%T, %v\n", fmt64, fmt64)
}

輸出結果:

string, 3.1415927E+00
string, 3.1415926535E+00
string, 3.1415926535

閱讀上面這段代碼,我們使用 func FormatFloat(f float64, fmt byte, prec, bitSize int) string 將浮點型轉換為字符串。該函數包含 4 個參數,第一個參數是需要轉換的浮點數;第二個參數是進制;第三個參數是精度,第四個參數是轉換后值的取值范圍。

其中,第二個參數 b 代表二進制指數;e 或 E 代表十進制指數;f 代表無進制指數;g 或 G 代表指數大時 為 e,反之為 f;x 或 X 代表十六進制分數和二進制指數。

第三個參數,精度 prec 控制由 'e','E','f','g','G','x' 和 'X' 格式打印的位數(不包括指數)。對于 'e','E','f','x' 和 'X',它是小數點后的位數。對于 'g' 和 'G',它是有效數字的最大數目(去掉后面的零)。特殊精度 -1 使用所需的最小位數,以便 ParseFloat 精確返回 f。

整型 to 字符串

示例代碼:

func main() {
 v := int64(-42)

 s10 := strconv.FormatInt(v, 10)
 fmt.Printf("%T, %v\n", s10, s10)

 s16 := strconv.FormatInt(v, 16)
 fmt.Printf("%T, %v\n", s16, s16)
}

輸出結果:

string, -42
string, -2a

閱讀上面這段代碼,我們使用 func FormatInt(i int64, base int) string 將整型轉換為字符串。需要注意的是,第二個參數的取值范圍 2 <= base <= 36。

此外,函數 func FormatUint(i uint64, base int) string 與之功能類型,區別是僅用于轉換無類型整數。

在實際項目開發中,十進制使用的最多,所以標準庫 strconv 提供了函數 func Itoa(i int) string,它的功能類似 FormatInt(int64(i), 10),需要注意的是,該函數入參的類型是 int。

03 、字符串操作

關于字符串操作,標準庫 strings 提供了相關函數,我們介紹幾個常用的函數。

字符串中是否包含指定字符串

示例代碼:

func main() {
 fmt.Println(strings.Contains("seafood", "foo"))
 fmt.Println(strings.Contains("seafood", "bar"))
 fmt.Println(strings.Contains("seafood", ""))
 fmt.Println(strings.Contains("", ""))
}

輸出結果:

true
false
true
true

閱讀上面這段代碼,我們使用 func Contains(s, substr string) bool 在字符串 substr 中查找 s,存在則返回 true,反之返回 false。

字符串中是否包含指定字符串中任意字符

示例代碼:

func main() {
 fmt.Println(strings.ContainsAny("team", "i"))
 fmt.Println(strings.ContainsAny("fail", "ui"))
 fmt.Println(strings.ContainsAny("ure", "ui"))
 fmt.Println(strings.ContainsAny("failure", "ui"))
 fmt.Println(strings.ContainsAny("foo", ""))
 fmt.Println(strings.ContainsAny("", ""))
}

輸出結果:

false
true
true
true
false
false

閱讀上面這段代碼,我們使用 func ContainsAny(s, chars string) bool 在字符串 s 中查找是否包含字符串 chars 中任意字符,存在則返回 true,反之返回 false。

刪除字符串中指定字符

示例代碼:

func main() {
 fmt.Print(strings.Trim("???Hello, Gophers!!!", "!?"))
}

輸出結果:

Hello, Gophers

閱讀上面這段代碼,我們使用 func Trim(s, cutset string) string 刪除字符串 s 中的字符 cutset。

字符串轉換為大寫

示例代碼:

func main() {
 fmt.Println(strings.ToUpper("Gopher"))
}

輸出結果:

GOPHER

閱讀上面這段代碼,我們使用 func ToUpper(s string) string 將字符串中的字符全部轉換為大寫。

字符串以指定字符拆分為字符串切片

示例代碼:

func main() {
 fmt.Printf("%q\n", strings.Split("a,b,c", ","))
 fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a "))
 fmt.Printf("%q\n", strings.Split(" xyz ", ""))
 fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins"))
}

輸出結果:

["a" "b" "c"]
["" "man " "plan " "canal panama"]
[" " "x" "y" "z" " "]
[""]

閱讀上面這段代碼,我們使用 func Split(s, sep string) []string 將字符串 s 以字符串 sep 為分隔符,拆分為字符串切片。

字符串切片拼接為字符串

示例代碼:

func main() {
 s := []string{"foo", "bar", "baz"}
 fmt.Println(strings.Join(s, ", "))
}

輸出結果:

foo, bar, baz

閱讀上面這段代碼,我們使用 func Join(elems []string, sep string) string 將字符串切片中的所有元素,以 sep 為分隔符,拼接為字符串。

04 、字符串拼接

關于字符串拼接,分為編譯時字符串拼接,和運行時字符串拼接。

其中,編譯時字符串拼接,即使用 + 將多個字符串拼接為一個字符串,需要注意的是,在使用 + 拼接字符串時,如果存在字符串變量,則會在運行時拼接。

示例代碼:

func main() {
    str := "hello" + " world"
    fmt.Println(str)
    name := "frank"
    outPut := "My name is " + name
    fmt.Println(outPut)
}

輸出結果:

hello world
My name is frank

閱讀上面這段代碼,第一個字符串拼接是在編譯時拼接,第二個字符串拼接是在運行時拼接。

需要注意的是,運行時拼接是分配一塊新的內存空間,通過內存拷貝的方式將字符串拷貝到新內存空間。

如果拼接后的字符串小于 32 字節,可以使用臨時緩存;如果拼接后的字符串大于 32 字節,需要在堆區分配一塊內存空間,并將需要拼接的多個字符串通過內存拷貝的形式拷貝過去。

字符串與字節數組互相轉換時,也需要通過內存拷貝的方式,如果字符串大于 32 字節,需要在堆區分配一塊內存空間,所以在一些轉換密集的場景,我們需要特別注意。

此外,除了使用操作符 + 或 += 拼接字符串之外,還有多種字符串拼接方式,例如,fmt.Sprintf、bytes.Buffer、strings.Join 和 stings.Builder。這些字符串拼接方式在之前的文章 「Golang 語言怎么高效拼接字符串?」 介紹過,本文不再贅述。

05 、總結

本文我們介紹 Go 語言中字符串的使用方式,包括類型轉換、字符串操作、字符串拼接。

除了使用標準庫 strconv 進行字符串類型轉換之外,讀者朋友們也可以選擇三方庫,例如:github.com/spf13/cast。

建議讀者朋友們閱讀標準庫文檔,了解更多關于標準庫 strconv 和 strings 的函數。

責任編輯:武曉燕 來源: Golang語言開發棧
相關推薦

2023-12-11 08:39:14

Go語言字符串拼

2022-11-10 07:43:45

2009-12-11 13:16:04

PHP查詢字符串

2023-05-29 08:03:41

代碼Go語言

2021-09-10 08:18:31

Go語言字符串

2021-03-08 08:57:00

Go 字符串測試

2023-10-13 19:42:00

2023-12-11 15:18:03

C++字符串Unicode

2023-11-06 09:32:52

Java實踐

2010-03-03 16:25:41

Python字符串顯示

2023-01-03 08:07:33

Go字符串指針

2020-12-31 07:56:02

JavaScript 字符串技巧

2024-09-06 17:32:55

字符串Python

2021-10-31 23:01:50

語言拼接字符串

2024-02-20 20:12:09

C語言字符串Redis

2023-03-21 15:27:00

RedisC語言字符串

2011-07-15 12:41:53

C語言

2011-07-15 11:07:41

C語言字符串函數

2009-11-26 13:11:24

PHP字符串

2009-12-01 09:18:50

PHP分割字符串
點贊
收藏

51CTO技術棧公眾號

久久精品日产第一区二区三区乱码| 久久亚洲影音av资源网| 精品一区二区中文字幕| 欧美视频综合| 国产一区二区三区精品欧美日韩一区二区三区 | www.久久久久久久| 国产精品国产三级国产在线观看| 欧美成人伊人久久综合网| 欧洲av无码放荡人妇网站| 黄色av电影在线播放| 91在线精品秘密一区二区| 成人免费网站在线| 亚洲成熟少妇视频在线观看| 综合天堂av久久久久久久| 亚洲欧美国产精品va在线观看| 在线播放av中文字幕| 久久久久久久| 亚洲图片一区二区| 亚洲永久激情精品| 日本亚洲一区| 懂色av噜噜一区二区三区av| 国产精品欧美亚洲777777| 久久精品国产亚洲av麻豆色欲 | 成年人网站国产| 992tv免费直播在线观看| av一区二区三区| 亚洲综合小说区| 在线观看免费视频a| 国产日韩欧美一区| 欧美精品videosex极品1| 久久久精品少妇| 国产亚洲欧美日韩在线观看一区二区| 欧美xxx久久| 在线视频观看91| 天堂网av2018| 99久久精品国产成人一区二区| 日韩亚洲国产欧美| 在线精品播放av| 免费成人深夜夜行p站| 日韩精品免费视频一区二区三区 | 国产精品成人久久| 欧美电影一区| 在线视频欧美日韩| 美女被到爽高潮视频| 久久a爱视频| 亚洲高清色综合| 国产大尺度视频| 亚洲成人影音| 日韩免费高清av| 成年人看片网站| 欧美第一在线视频| 日韩午夜激情电影| 九九九久久久久久久| 四虎地址8848精品| 91精品福利在线一区二区三区| 一区二区三区视频网| 91大神在线观看线路一区| 色94色欧美sute亚洲线路一ni | 美女高潮在线观看| 性做久久久久久| 精品无码国模私拍视频| wwww亚洲| 婷婷国产在线综合| 日韩av片在线看| 中文在线8资源库| 色哟哟日韩精品| 午夜欧美福利视频| 欧美男男gaygay1069| 在线电影国产精品| 无码人妻丰满熟妇区毛片蜜桃精品| 精品国产乱码一区二区三区 | 日韩免费中文字幕| 日本精品入口免费视频| 免费在线观看日韩欧美| 成人免费网站在线看| www日本高清| 91色九色蝌蚪| 亚洲国产精品日韩| 91黄色在线| 狠狠色狠狠色综合日日小说| 不要播放器的av网站| 深夜福利亚洲| 亚洲国产天堂久久综合| 中文字幕免费视频| 亚洲情侣在线| 97热精品视频官网| 中文字幕欧美人妻精品| 精品在线一区二区三区| 成人av蜜桃| 久蕉依人在线视频| 亚洲精选免费视频| 中文字幕乱码人妻综合二区三区| 69堂精品视频在线播放| 欧美一级日韩免费不卡| 人妻在线日韩免费视频| 青青草成人影院| 色综合五月天导航| 无码人妻精品一区二| 国模少妇一区二区三区| 久久99精品久久久久久三级| 日本天堂在线观看| 精品国产乱码久久久久酒店| 日本xxxx黄色| 美女主播精品视频一二三四| 日韩中文字幕av| 黄色片视频网站| 麻豆一区二区三| 蜜桃久久精品乱码一区二区 | 亚洲成人在线网站| the porn av| 秋霞蜜臀av久久电影网免费| 久久精品国产69国产精品亚洲| 四虎永久在线精品| 九九视频精品免费| 欧美日韩精品中文字幕一区二区| 18加网站在线| 欧美无乱码久久久免费午夜一区| 日韩无码精品一区二区| 久久精品免费一区二区三区| 国产成人精品av在线| 免费看日韩av| 亚洲少妇30p| 色国产在线视频| 久操精品在线| 欧美一级在线播放| 成人毛片在线免费观看| 亚洲日本在线视频观看| 婷婷免费在线观看| 禁果av一区二区三区| 91国产在线精品| 性生交大片免费看女人按摩| 中文字幕在线播放不卡一区| 男人搞女人网站| 琪琪久久久久日韩精品| 久久久亚洲国产天美传媒修理工| 亚洲自拍偷拍另类| 国产精品人妖ts系列视频| 亚洲爆乳无码专区| 美女毛片一区二区三区四区最新中文字幕亚洲 | 99成人在线| 国产精品日韩一区二区| av免费在线观看网站| 4hu四虎永久在线影院成人| 国产调教在线观看| 免费成人在线网站| 亚洲午夜精品久久久中文影院av | 欧美精品黑人性xxxx| 91精品国自产在线| 日本vs亚洲vs韩国一区三区| 日韩电影免费观看高清完整| 五月激情久久| 综合国产在线视频| 在线视频你懂得| 中文字幕佐山爱一区二区免费| 色www免费视频| 亚洲成人精品| 99视频免费观看| 激情国产在线| 亚洲欧美精品一区| 在线观看免费黄色小视频| 亚洲欧洲无码一区二区三区| 中文字幕avav| 在线成人av| 蜜桃导航-精品导航| 蜜桃精品在线| 久久精品国产91精品亚洲| 国产高清免费观看| 色综合天天色| 欧美三级欧美一级| 国产激情无码一区二区三区| 国产成人精品亚洲日本在线桃色 | 污污视频在线看| 欧美tickling挠脚心丨vk| 天堂在线免费观看视频| 欧美国产国产综合| 香蕉视频xxxx| 亚洲欧美久久久| 亚洲最大免费| 欧美三级电影在线| 国产精品手机播放| 日本大片在线播放| 亚洲视频一区二区三区| 91丨porny丨在线中文| 亚洲午夜电影在线观看| 欧美激情aaa| 国产一区二区伦理| 又粗又黑又大的吊av| 日韩毛片视频| 成人女人免费毛片| 播放一区二区| 久久久久久久久久久免费| 阿v免费在线观看| 精品国产91洋老外米糕| 久久这里只有精品9| 亚洲综合色成人| 男人的天堂av网| 不卡在线观看av| 色91精品久久久久久久久 | 另类小说第一页| 在线一区电影| 日本欧美精品久久久| 日韩成人18| 国产精品美女999| a级片免费在线观看| 中文字幕精品久久久久| 天堂在线观看免费视频| 欧美顶级少妇做爰| 欧美日韩综合一区二区三区| 亚洲人成7777| 成人无码av片在线观看| 国产91精品精华液一区二区三区 | 国产成人三级在线观看| 超碰在线97免费| 在线一区欧美| 日韩免费在线观看av| 欧美肥老太太性生活| 女同一区二区| 国产精品久av福利在线观看| 成人精品视频久久久久| 成人一区视频| 国产成人精品国内自产拍免费看| free性欧美16hd| 欧美另类精品xxxx孕妇| 男人的天堂在线视频免费观看| 亚洲精品丝袜日韩| 亚洲欧美色视频| 精品女同一区二区| 午夜美女福利视频| 欧美精品在线视频| 91久久精品无码一区二区| 欧美中文字幕一区二区三区亚洲| 中文字幕一区二区人妻电影| 午夜久久久影院| 精品久久免费视频| 一区二区三区毛片| 三级av在线免费观看| 中文字幕一区二区三区四区不卡| 殴美一级黄色片| 国产精品久久久久久福利一牛影视| 精品国产成人亚洲午夜福利| 2021中文字幕一区亚洲| 92裸体在线视频网站| 久久久久精彩视频| 午夜精品福利视频网站| 日韩高清精品免费观看| 性做久久久久久久免费看| 国产午夜小视频| 亚洲va天堂va国产va久| 日韩精品无码一区二区| 午夜影院久久久| 日日骚av一区二区| 在线免费不卡视频| 亚洲最大成人在线视频| 在线播放91灌醉迷j高跟美女 | 日韩av网站导航| 天堂成人在线| 亚洲欧洲一区二区三区久久| 懂色av中文在线| 色婷婷久久一区二区| a视频在线免费看| 欧美日韩福利电影| 2020国产在线| 日本精品免费一区二区三区| 国产一区二区主播在线| 成人欧美一区二区三区在线 | 日韩成人在线视频| 国产一区二区影视| 久久韩国免费视频| 欧洲中文在线| 91精品国产高清久久久久久91| 中文字幕乱码中文乱码51精品| 国产精品扒开腿爽爽爽视频 | 蜜桃视频一区二区三区在线观看| 色综合色综合色综合色综合| 国产精品77777竹菊影视小说| 欧美久久久久久久久久久| 91丨九色丨蝌蚪丨老版| 国产精品无码无卡无需播放器| 亚洲男人的天堂在线aⅴ视频| 国产一级免费观看| 色一情一伦一子一伦一区| 一级黄色短视频| 亚洲第五色综合网| 国产视频精品久久| 欧美日本亚洲视频| 免费看av不卡| 91综合免费在线| 特黄特色欧美大片| 伊人天天久久大香线蕉av色| 日韩视频在线一区二区三区| 日韩大片一区二区| www.亚洲免费av| 999久久久国产| 亚洲1区2区3区视频| 中文字幕精品无码亚| 精品三级av在线| 天天综合视频在线观看| 66m—66摸成人免费视频| 亚洲国产天堂| 欧美成人第一区| 国产精品hd| 亚欧激情乱码久久久久久久久| 不卡av电影在线播放| 三级在线观看免费大全| 日本电影亚洲天堂一区| 懂色av一区二区三区四区| 日日噜噜噜夜夜爽亚洲精品| 捆绑调教日本一区二区三区| 亚洲va欧美va在线观看| 欧美日韩激情| 日韩中文字幕在线视频观看 | 一本色道综合久久欧美日韩精品| 国产精品蜜臀在线观看| 久久亚洲精品国产| 日韩美女天天操| 美女羞羞视频在线观看| 国产91精品最新在线播放| 动漫3d精品一区二区三区乱码| 亚洲综合第一| 美女国产一区二区三区| 亚洲黄色在线网站| 亚洲成人1区2区| 亚洲va天堂va欧美ⅴa在线| 日日狠狠久久偷偷四色综合免费| 国产精品迅雷| 蜜桃传媒视频第一区入口在线看| 一区在线视频| 久久久无码人妻精品无码| 亚洲免费色视频| 中文字幕免费在线看| 国产亚洲欧美日韩美女| 原纱央莉成人av片| 精品一区二区三区免费毛片| 狠狠爱www人成狠狠爱综合网 | 亚洲日本视频在线| 激情图片qvod| 国内一区二区在线| 大地资源高清在线视频观看| 欧美网站一区二区| 91在线高清| 国产日韩在线观看av| 日韩中文在线电影| 国产又黄又猛又粗又爽的视频| 久久久久国产精品麻豆| 国产91精品一区| 亚洲男女自偷自拍图片另类| 625成人欧美午夜电影| 欧美精品一区二区三区四区五区| 久久精品一区二区国产| 亚洲欧美视频在线播放| 欧美午夜无遮挡| 国产尤物视频在线| 国产精品第七十二页| 精品日韩欧美一区| 岛国毛片在线播放| 亚洲精品成人在线| 欧美一级片免费| 欧美一区二区视频97| 精品国产欧美日韩| 欧美视频国产视频| 一区二区免费视频| 人人妻人人玩人人澡人人爽| 57pao成人永久免费视频| 国产亚洲一卡2卡3卡4卡新区 | 久久精品青青大伊人av| 精品一区二区三区亚洲| 欧洲精品一区二区三区久久| 91片在线免费观看| 中文字幕av第一页| 日韩在线观看av| 国产日韩三级| 成年人免费大片| 亚洲三级在线观看| 污视频在线免费观看| 国产精品av在线播放| 97视频热人人精品免费| 青青草视频网站| 日本道在线观看一区二区| av大大超碰在线| 久热这里只精品99re8久| 毛片基地黄久久久久久天堂| 久久国产免费观看| 亚洲男人av在线| 国产精品亚洲综合在线观看 | 精品福利一区二区三区免费视频| 亚洲美女炮图| www亚洲国产| 久久久久久久久免费| 国产精品无码天天爽视频| 国模极品一区二区三区| 成人羞羞视频播放网站| 中文字幕在线国产| 欧美日韩一区二区三区四区五区| 牛牛在线精品视频| 午夜精品短视频| 不卡视频在线观看| 国产精品久久久久久久成人午夜| 2019中文在线观看| 欧美国产先锋| 内射毛片内射国产夫妻|