精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美成人综合在线| 欧美在线观看不卡| 亚洲精品一二三**| 调教+趴+乳夹+国产+精品| 日本不卡二区高清三区| 99riav国产| 香蕉国产精品偷在线观看不卡| 国产一区二区成人| 麻豆短视频在线观看| 三级成人黄色影院| 一级女性全黄久久生活片免费| 蜜桃传媒一区二区| 国产精品免费无遮挡| 国产亚洲网站| 欧美成人亚洲成人日韩成人| 亚洲AV无码国产成人久久| 亚洲久草在线| 一本久久精品一区二区| 天堂а√在线中文在线| 国产在线你懂得| 成人一级片在线观看| 国产精品香蕉在线观看| 国产成人精品一区二三区| 婷婷成人基地| 伊人久久精品视频| 精品影片一区二区入口| 国产精品一区二区精品| 一本色道**综合亚洲精品蜜桃冫| 99久久免费观看| 91porn在线观看| 久久久综合网站| αv一区二区三区| 一级特黄特色的免费大片视频| 国产欧美午夜| 久久久久免费精品国产| 九九这里只有精品视频| 国产探花在线精品| 日韩精品视频免费| 美女扒开腿免费视频| 国产在线一区不卡| 7777精品伊人久久久大香线蕉完整版| 精品www久久久久奶水| 91精品国产黑色瑜伽裤| 一区二区三区免费网站| 中文字幕av导航| 电影在线一区| 中文字幕不卡的av| 日韩亚洲一区在线播放| 黄视频在线播放| 久久男人中文字幕资源站| 好吊色欧美一区二区三区四区 | 亚洲欧美卡通另类91av| 欧美国产日韩一区二区| 欧美日韩一级大片| 极品av少妇一区二区| 欧美精品日韩www.p站| 国产真实乱在线更新| 久久精品久久久| 美女福利精品视频| 久久亚洲国产成人精品性色| 国产精品v亚洲精品v日韩精品| 久久91精品国产| 久久亚洲成人av| 99精品视频免费观看视频| 国精产品一区一区三区有限在线| 国产亚洲欧美精品久久久久久| 精品成人一区| 欧美一级大胆视频| 日韩不卡高清视频| 久热成人在线视频| 91精品免费视频| 精品二区在线观看| 不卡视频在线观看| 日本成人黄色| 动漫一区在线| 欧美日韩美女视频| 日韩精品无码一区二区三区免费| 成人国产在线| 日韩一区二区三区精品视频| 精品久久久久一区二区| 亚洲综合图色| 俺去啦;欧美日韩| 久久亚洲精品大全| 日本欧洲一区二区| 亚洲综合国产精品| 亚洲人午夜射精精品日韩| 久久精品视频一区二区三区| 无码免费一区二区三区免费播放 | 亚洲色图视频免费播放| 成人午夜视频免费观看| 在线女人免费视频| 欧美剧情电影在线观看完整版免费励志电影| 在线免费黄色小视频| 欧美大胆a级| 精品国产依人香蕉在线精品| 奇米影视第四色777| 男人操女人的视频在线观看欧美| 91国产在线免费观看| 国模吧精品人体gogo| 亚洲精品久久久蜜桃| 黄色片一级视频| 精品一区二区三区视频在线播放 | 日本在线人成| 图片区日韩欧美亚洲| 亚洲欧美日韩精品一区| 欧美巨大xxxx| 久久精品视频网站| 精品久久久久久久久久久久久久久久| 国产一区二区在线观看视频| 欧美国产二区| 超黄网站在线观看| 欧美夫妻性生活| 亚洲av无码一区二区三区人 | www.欧美激情.com| 免费精品国产| 欧美国产日韩一区二区三区| 亚洲天堂视频在线| 久久久久久久综合日本| 韩日视频在线观看| 国产精品日本一区二区不卡视频 | 91精品国产入口在线| 爱爱免费小视频| 一本色道久久| 国产精品视频500部| 免费在线看黄| 欧美三级在线看| 亚洲精品成人无码熟妇在线| 99国产精品自拍| 国产精品一区二区av| 国产激情视频在线| 欧美日韩国产综合一区二区| 法国空姐电影在线观看| 一区二区动漫| 国产欧美日韩视频一区二区三区| 污片视频在线免费观看| 日韩一区国产二区欧美三区| 亚洲精品自拍视频在线观看| 秋霞电影网一区二区| 欧美二区在线| 最近在线中文字幕| 日韩精品福利网站| 国产成人在线观看网站| www.久久久久久久久| 欧美极品少妇无套实战| 91精品短视频| 久久人人97超碰精品888 | 亚洲美女性生活视频| 久久久午夜影院| 97精品国产97久久久久久久久久久久 | 欧美日韩国产专区| 800av在线播放| 一本一本久久| 日本精品视频一区| 久久亚洲人体| 久久伊人色综合| 午夜精品久久久久久久96蜜桃| 亚洲美女在线一区| 99热这里只有精品2| 国产精品a级| 精品无人区一区二区三区| 大桥未久在线视频| 亚洲欧美在线一区| 国产天堂第一区| 中文字幕一区在线| 18深夜在线观看免费视频| 在线看片一区| 欧美中文娱乐网| 日韩电影精品| 欧美激情按摩在线| 日韩在线免费看| 欧美色综合天天久久综合精品| 美女福利视频网| 粉嫩欧美一区二区三区高清影视| 男人添女人下面高潮视频| 精品视频亚洲| 不卡一区二区三区四区五区| 中文字幕乱码中文乱码51精品| 中文字幕亚洲欧美日韩高清 | 成人在线观看免费播放| 麻豆乱码国产一区二区三区| 五月婷婷久久久| 欧美日韩一区二区三区在线| 久久一级黄色片| 久久久国际精品| 熟妇女人妻丰满少妇中文字幕| 国产亚洲精品bv在线观看| 日本在线播放一区| 狂野欧美xxxx韩国少妇| 欧美一级高清免费播放| 免费黄色网页在线观看| 日韩电影中文字幕在线| 在线播放精品视频| 婷婷开心激情综合| 日韩一卡二卡在线观看| 91在线观看地址| 免费成人黄色大片| 午夜在线一区二区| 永久免费看av| 亚洲第一二三区| 91影院未满十八岁禁止入内| 四虎4545www精品视频| 久久久久女教师免费一区| yw193.com尤物在线| 精品国一区二区三区| 亚洲午夜无码久久久久| 精品久久久久久亚洲国产300| 国产精品久久久久久成人| 成人精品鲁一区一区二区| 青青草久久伊人| 久久精品日韩欧美| www.国产在线视频| 97国产精品| 日韩少妇中文字幕| 日韩丝袜视频| 国产精品对白刺激久久久| 国产精品久久久久久久久久齐齐| 68精品国产免费久久久久久婷婷| 国产人成网在线播放va免费| 这里只有精品视频在线| 色中色在线视频| 亚洲第一精品自拍| 精品国产亚洲av麻豆| 欧美日韩亚洲丝袜制服| 欧美一级淫片免费视频黄| 欧美日韩国产一区中文午夜| 国产一级视频在线播放| 亚洲精品欧美激情| 熟女少妇a性色生活片毛片| 久久精品夜夜夜夜久久| 丝袜美腿中文字幕| 91在线视频免费91| 国产一级伦理片| 豆国产96在线|亚洲| 久久久久无码精品| 经典一区二区三区| 在线免费看污网站| 国内外成人在线视频| 孩娇小videos精品| 日本va欧美va精品发布| 欧美日韩在线成人| 久久久久中文| 一本久道综合色婷婷五月| 天堂精品中文字幕在线| 国产福利视频在线播放| 欧美亚洲自偷自偷| 日本熟妇人妻xxxxx| 欧美一级二区| 亚洲国产精品毛片av不卡在线| 亚洲欧美日韩专区| 久久人妻精品白浆国产| 日本成人在线不卡视频| 在线免费视频一区| 日韩精品――中文字幕| 欧美日韩在线二区| 日韩视频在线观看国产| 成人网18免费网站| 一区二区日本伦理| 亚洲女同另类| 久久久天堂国产精品| 精品99视频| 国产在线观看福利| 青青草国产精品亚洲专区无| 亚洲欧洲日本精品| 激情六月婷婷久久| www.欧美com| 91亚洲国产成人精品一区二区三 | 国产欧美日韩视频在线观看| 战狼4完整免费观看在线播放版| 国产精品久久精品日日| 精品国产欧美日韩不卡在线观看 | 久久久99久久精品女同性| 怡红院av在线| 69国产精品成人在线播放| 91精品影视| 亚洲japanese制服美女| 风间由美性色一区二区三区四区| 久久99国产精品99久久| 欧美日韩国产高清电影| 日本美女爱爱视频| 亚洲毛片视频| 亚洲 激情 在线| 成人听书哪个软件好| 国产小视频自拍| 亚洲你懂的在线视频| 亚洲精品国产精品乱码| 欧美日韩一区小说| 成人乱码一区二区三区| 亚洲欧洲日产国产网站| 九七久久人人| 欧美亚洲成人精品| 久久国产精品免费一区二区三区| 精品蜜桃一区二区三区| 欧美成人直播| 国产精品无码一区二区在线| 激情综合色丁香一区二区| 国产又粗又长又爽| 国产精品超碰97尤物18| 好吊操这里只有精品| 欧美日韩精品免费| 婷婷色在线观看| 久色乳综合思思在线视频| 亚洲校园激情春色| 91亚色免费| 色综合咪咪久久网| 可以在线看的黄色网址| 国产 日韩 欧美大片| 99久久99久久精品免费看小说.| 精品福利在线看| 99国产精品99| 色偷偷9999www| 校园春色亚洲| 成人h视频在线观看| 欧美韩日高清| 无码人妻丰满熟妇区毛片| 99久久精品国产导航| 成人免费视频网站入口::| 在线观看视频91| 三级黄视频在线观看| 欧美激情亚洲精品| 精品国产亚洲一区二区三区在线| 色就是色欧美| 免费在线播放第一区高清av| 亚洲视频天天射| 亚洲欧美激情一区二区| 男操女视频网站| 亚洲码在线观看| 国内激情视频在线观看| 成人资源av| 欧美日韩视频| 99久久综合网| 亚洲美女屁股眼交| 国产尤物视频在线观看| 国产一区二区成人| av激情成人网| 日韩精品最新在线观看| 久久一区二区三区超碰国产精品| 涩视频在线观看| 亚洲一区在线视频观看| 午夜精品无码一区二区三区| 久久大大胆人体| 激情综合婷婷| 2021狠狠干| 国产精品一区二区在线看| 天天做夜夜爱爱爱| 制服.丝袜.亚洲.另类.中文| 黄色在线视频网站| 91在线高清视频| 午夜精品电影| 任你躁av一区二区三区| 亚洲18色成人| 亚洲欧洲成人在线| 国产成人精品在线观看| 成人午夜国产| 在线观看免费不卡av| 一区二区三区在线观看视频| 午夜老司机福利| 97精品在线视频| 怕怕欧美视频免费大全| 天天干天天爽天天射| 136国产福利精品导航| 国产jzjzjz丝袜老师水多| 欧美激情视频网站| 福利片一区二区| 凹凸国产熟女精品视频| 国产欧美日韩精品一区| 91国产免费视频| 欧美激情第三页| 亚洲毛片免费看| 中文字幕亚洲欧洲| 亚洲一区二区三区四区不卡| 色天堂在线视频| 91精品国产综合久久久久久久久 | 国产精品国产三级国产aⅴ入口| 国产乱码精品一区二三区蜜臂| 色综合色综合久久综合频道88| 国产精品香蕉| 天天碰免费视频| 亚洲男人天堂一区| 深夜福利免费在线观看| 国产在线观看91精品一区| 精品成人在线| 欧美成人短视频| 亚洲缚视频在线观看| 日本久久免费| 女女百合国产免费网站| 久久在线观看免费| 国产喷水福利在线视频| 26uuu日韩精品一区二区| 婷婷成人基地| 无码一区二区三区在线| 51精品国自产在线| 伊人成综合网站| 国产91porn| 国产欧美一区二区三区鸳鸯浴| 亚洲成人77777| 国产精品aaaa| 亚洲精品欧洲| 亚洲不卡在线播放| 国产一区二区久久精品| 超碰在线亚洲|