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

Scala,一門「特立獨行」的語言!

開發(fā) 后端
入門 Spark 的路上很難不接觸 Scala 。Scala 似乎是為 java 提供了很多『類似函數(shù)式編程』的語法糖,這里記錄一下這個語言獨特的地方分享給讀者朋友們。

[[410308]]

本文轉(zhuǎn)載自微信公眾號「Piper蛋窩」,作者Piper蛋 。轉(zhuǎn)載本文請聯(lián)系Piper蛋窩公眾號。

入門 Spark 的路上很難不接觸 Scala 。Scala 似乎是為 java 提供了很多『類似函數(shù)式編程』的語法糖,這里記錄一下這個語言獨特的地方分享給讀者朋友們。

參考資料主要有:

  • 曹潔 . Spark大數(shù)據(jù)分析技術(shù)(Scala版)[M]. 北京航空航天大學(xué)出版社, 2021. ISBN:9787512433854
  • 陳歡 , 林世飛 . Spark最佳實踐[M]. 人民郵電出版社, 2016. ISBN:9787115422286

Scala 基本思想與注意事項

Sacla 即 Scalable Language ,正如其名,是一門可伸縮的編程語言:

  • 基于 java 的虛擬機( Scala 會被編譯成 JVM 字節(jié)碼)
  • 但是既可以當腳本使用,又可以構(gòu)造大型系統(tǒng)
  • 是靜態(tài)語言,但是可以像動態(tài)語言那樣支持交互式編程
  • 面型對象:每一個值都是對象,每一次運算都是一次方法調(diào)用
  • 函數(shù)式編程:所有函數(shù)都是對象,函數(shù)是“一等公民”
  • Scala 中幾乎一切都是表達式

scala 是解釋器, scalac 是編譯器;可以直接 scala test.scala ,也可以 scalac test.scala & scala test (先把源碼編譯為字節(jié)碼,再把字節(jié)碼放到虛擬機中解釋運行)。還可用輸入 scala 進入交換編程界面。

所以要注意的是,需要先安裝 JDK ,并且設(shè)置好環(huán)境變量 JAVA_HOME 。此外,更加重要的是, Scala 小版本兼容:2.12.x 與 2.13.x 這兩者不兼容,2.12.10 與 2.12.11 才兼容。

最基本的語法示例

類型的聲明、控制結(jié)構(gòu)(for、模式匹配、case)

  1. // 變量 
  2. val two: Int = 1 + 1 
  3.  
  4. var one: Int = 1 
  5. var one: String = 'one' 
  6.  
  7. // 函數(shù) 
  8. def addOne(x: Int): Int = x + 1 
  9.  
  10. def add(x: Int, y: Int): Int = { 
  11.     x + y 
  12.  
  13. // 部分控制結(jié)構(gòu) 
  14. var filename =  
  15.     if (!args.isEmpty) args(0) 
  16.     else "default.txt" 
  17.  
  18. for (i <- 1 to 4) 
  19.     println("iteration " + i) 

1 to 4 是 [1,2,3,4] ,而 i until 4 是 [1,2,3] 。

關(guān)于 for 還有一些奇技淫巧。

  1. // 多個區(qū)間 
  2. for (a <- 1 to 2; b <- 1 to 2) { 
  3.     println("a: " + a + ", b: " + b) 
  4. // 結(jié)果 
  5. a: 1, b: 1 
  6. a: 1, b: 2 
  7. a: 2, b: 1 
  8. a: 2, b: 2 
  9.  
  10. // 過濾器 
  11. val list1 = List(3, 5, 2, 1, 7) 
  12. for (x <- list1 if x % 2 == 1) print(" " + x) 
  13. // 3 5 1 7 

關(guān)于模式匹配,則有更多奇技淫巧。這里我直接參考:scala中case的用法[1]

  1. // 一.簡單匹配,值匹配: 
  2.  
  3. val bools = List(truefalse
  4. for (bool <- bools) { 
  5.     bool match { 
  6.         case true => println("heads"
  7.         case false => println("tails"
  8.         case _ => println("something other than heads or tails (yikes!)"
  9.     } 
  10.  
  11. import scala.util.Random 
  12. val randomInt = new Random().nextInt(10) 
  13. randomInt match { 
  14.     case 7 => println("lucky seven!"
  15.     case otherNumber => println("boo, got boring ol' " + otherNumber) 
  16.  
  17. // 二. 類型匹配 
  18.  
  19. val sundries = List(23, "Hello", 8.5, 'q'
  20. for (sundry <- sundries) { 
  21.     sundry match { 
  22.         case i: Int => println("got an Integer: " + i) 
  23.         case s: String => println("got a String: " + s) 
  24.         case f: Double => println("got a Double: " + f) 
  25.         case other => println("got something else: " + other) 
  26.  
  27. // 三 根據(jù)順序匹配 
  28.  
  29. val willWork = List(1, 3, 23, 90) 
  30. val willNotWork = List(4, 18, 52) 
  31. val empty = List() 
  32. for (l <- List(willWork, willNotWork, empty)) { 
  33.     l match { 
  34.         case List(_, 3, _, _) => println("Four elements, with the 2nd being '3'."
  35.         case List(_*) => println("Any other list with 0 or more elements."
  36.     } 
  37.  
  38. // 四 case里面用 guard 的數(shù)組匹配 
  39.  
  40. val tupA = ("Good""Morning!"
  41. val tupB = ("Guten""Tag!"
  42.     for (tup <- List(tupA, tupB)) { 
  43.         tup match { 
  44.             case (thingOne, thingTwo) if thingOne == "Good" => 
  45.             println("A two-tuple starting with 'Good'."
  46.             case (thingOne, thingTwo) =>println("This has two things: " + thingOne + " and " + thingTwo) 
  47.         } 
  48.  
  49. // 五 對象深度匹配 
  50.  
  51. case class Person(name: String, age: Int
  52. val alice = new Person("Alice", 25) 
  53. val bob = new Person("Bob", 32) 
  54. val charlie = new Person("Charlie", 32) 
  55. for (person <- List(alice, bob, charlie)) { 
  56.     person match { 
  57.         case Person("Alice", 25) => println("Hi Alice!"
  58.         case Person("Bob", 32) => println("Hi Bob!"
  59.         case Person(name, age) => 
  60.             println("Who are you, " + age + " year-old person named " + name + "?"
  61.     } 
  62.  
  63. // 六 正則表達式匹配 
  64.  
  65. val BookExtractorRE = """Book: title=([^,]+),\s+authors=(.+)""".r 
  66. val MagazineExtractorRE = """Magazine: title=([^,]+),\s+issue=(.+)""".r 
  67.  
  68. val catalog = List( 
  69.     "Book: title=Programming Scala, authors=Dean Wampler, Alex Payne"
  70.     "Magazine: title=The New Yorker, issue=January 2009"
  71.     "Book: title=War and Peace, authors=Leo Tolstoy"
  72.     "Magazine: title=The Atlantic, issue=February 2009"
  73.     "BadData: text=Who put this here??" 
  74.  
  75. for (item <- catalog) { 
  76.     item match { 
  77.         case BookExtractorRE(title, authors) => 
  78.             println("Book \"" + title + "\", written by " + authors) 
  79.         case MagazineExtractorRE(title, issue) => 
  80.             println("Magazine \"" + title + "\", issue " + issue) 
  81.         case entry => println("Unrecognized entry: " + entry) 
  82.     } 

關(guān)于 case ,我想強調(diào)其在“解包”中的應(yīng)用:

  1. dict = Map("Piper" -> 95, "Bob" -> 90) 
  2. dict.foreach { 
  3.     case (k, v) => printf( 
  4.         "grade of %s is %s/n", k, v 
  5.     ) 
  6.  
  7. grade of Piper is 95 
  8. grade of Bob is 90 

上述:使用了 foreach { case () => {} } ,注意 foreach 的大括號。與下面等效。

  1. dict = Map("Piper" -> 95, "Bob" -> 90) 
  2. dict.foreach ( 
  3.     x => println( 
  4.         s"grade of ${x._1} is ${x._2}" 
  5.     ) 
  6.  
  7. grade of Piper is 95 
  8. grade of Bob is 90 

Scala 語法獨特的地方

無參數(shù)方法,調(diào)用時不用加括號:args.isEmpty。

  1. def width: Int = if (height == 0) 0 else contents(0).length 
  2.  
  3. width  // 調(diào)用 

for 中使用 <- ,相當于 Python 的 in 。

繼承用關(guān)鍵字 extends :class A(a: Int) extends B 。

單實例對象 / 靜態(tài)成員變量與方法定義在 object 中:

  1. object Timer { 
  2.     var count = 0 
  3.     def currentCount() : Long = { 
  4.         count += 1 
  5.         count 
  6.     } 
  7.  
  8. Timer.currentCount()  // 直接調(diào)用 
  9.  
  10. class Timer { 
  11.     ... 

函數(shù)返回不必非要加 return ,默認最后一個表達式。

函數(shù)式:匿名函數(shù)作為參數(shù),并且還可以更簡潔

  1. val numbers = List(1, -3, -5, 9, 0) 
  2.  
  3. numbers.filter((x) => x > 0) 
  4. numbers.filter(x => x > 0) 
  5. numbers.filter(_ > 0)  // 一個參數(shù)且函數(shù)中僅被使用一次時 

_ 具有特殊的意義與工作(占位)

  1. // 部分應(yīng)用函數(shù) 
  2. def adder(m: Int, n: Int) = m + n 
  3.  
  4. val add2 = adder(2, _: Int)  // add2: (Int) => Int = <function1> 
  5. add2(3)  // res1: Int = 5 
  6.  
  7. // 柯里化 currying 
  8. def curriedSum(x: Int)(y: Int) = x + y 
  9. curriedSum (1)(2) 
  10.  
  11. val onePlus = curriedSum(1)_  // 注意這里使用了 _ 
  12. onePlus(2) 
  13.  
  14. // 模式匹配 
  15. var times = 1 
  16. times match { 
  17.     case 1 => "one" 
  18.     case 2 => "two" 
  19.     case _ => "other" 

Scala 的面向?qū)ο笈c一等公民“函數(shù)”

  1. (1).+(2)  // 3 

如上,(1)是對象,.+(2)是方法調(diào)用。Scala 中萬物皆對象。

  1. var increase = (x: Int) => x + 1 

如上,函數(shù)是一等公民,可以賦值給變量。

基本數(shù)據(jù)結(jié)構(gòu)

有以下概念:

  • 不可變列表 List 與可變列表 ListBuffer
  • 定長數(shù)組 Array 與變長數(shù)組 ArrayBuffer
  • 不可變集合 Set 與可變集合 scala.collection.mutable.Set
  • 映射 Map 與 可變映射 scala.collection.mutable.Map
  • 元組 Tuple

注意事項與 Scala 奇技淫巧

使用 until 是遍歷數(shù)組的好辦法,by 和 _* 特殊意義:

  1. for (i <- 0 until.length) { } 
  2.  
  3. Array (1,3,5,7,9,11)  // 等價于 
  4. Array[Int](1 to 11 by 2:_* "Int")  // _* 有種解包的意味 

使用 yield 生成數(shù)組

  1. val a = Array(1, 2, 3, 4) 
  2. val res1 = for (ele <- a) yield 2 * ele 
  3. // 2, 4, 6, 8 

元組的下標從 1 開始

  1. val person = (1, 2, "ABC"
  2. person._1  // 1 

拉鏈操作 zip

  1. val symbols = Array("<""-"">"
  2. val counts = Array(2, 10, 2) 
  3. val pairs = symbols.zip(counts) 
  4. // Array[(String, Int)] = Array((<, 2), (-, 10), (>, 2)) 
  5. for ((s, n) <- pairs) print(s * n) 
  6. <<---------->> 

Map 神奇操作

  1. // 創(chuàng)建 
  2. val dict = Map("Piper" -> 95, "Bob" -> 90) 
  3. val kv   = Map(("Piper", 95), ("Bob", 90)) 
  4.  
  5. // 取值 
  6. dict("Piper"
  7.  
  8. // 合并 ++ 
  9. dict ++ kv 
  10. dict.++(kv) 
  11.  
  12. // 添加 + ,刪除 - 
  13. val n = dict + ("Tom" -> 91) 
  14. val l = dict - "Tom" 

對于可變 Map :

  1. // += -= 
  2. dict += (("Tom", 91), ("Jerry", 87)) 
  3. dict -= "Tom" 
  4. dict -= ("Jerry""Bob"
  5.  
  6. // ++= --= 與其他集合相聯(lián)系 
  7. dict ++= List(("Tom", 91), ("Jerry", 87)) 
  8. dict --= List("Jerry", "Bob") 

:: 與 ::: 創(chuàng)建列表

  1. 1::3::5::Nil  // List[Int] = List(1, 3, 5) 

注意 :: 是右結(jié)合的:(1::(3::(5::Nil))) 。

  1. // ::: 用來連接列表 
  2. val L4 = L3 ::: List("Hadoop""Hbase"

關(guān)于數(shù)據(jù)結(jié)構(gòu)的討論(List or Array?)

  • 多用 List 而非 Array
  • 列表的結(jié)構(gòu)是遞歸的(即鏈表,linkedList),而數(shù)組是平等的

參考:

  • scala中List、Array、ListBuffer、ArrayList、Set、元組區(qū)別[2]
  • Scala學(xué)習(xí)筆記5 (集合 Collections)[3]

參考資料

[1]scala中case的用法: https://blog.csdn.net/qq_41669665/article/details/86158993

[2]scala中List、Array、ListBuffer、ArrayList、Set、元組區(qū)別: https://blog.csdn.net/mar_ljh/article/details/81910286

[3]Scala學(xué)習(xí)筆記5 (集合 Collections): https://blog.csdn.net/lyrebing/article/details/20362227

【責(zé)任編輯:武曉燕 TEL:(010)68476606】

 

責(zé)任編輯:武曉燕 來源: Piper蛋窩
相關(guān)推薦

2011-05-01 21:48:54

Ubuntu 11.0

2019-11-18 11:00:58

程序員編程語言

2015-07-28 15:35:48

學(xué)習(xí)語言

2012-03-28 09:40:40

JavaScript

2011-12-30 09:33:02

程序員語言

2014-12-03 09:48:36

編程語言

2022-02-27 14:45:16

編程語言JavaC#

2022-11-04 11:11:15

語言入職項目

2012-09-04 11:20:31

2017-04-07 10:45:43

編程語言

2017-04-07 16:49:00

語言程序編程

2022-02-21 11:15:59

編程語言后端開發(fā)

2020-09-27 15:52:02

編程語言C 語言Python

2023-02-08 07:35:43

Java語言面向?qū)ο?/a>

2024-06-27 09:00:00

人工智能編程語言軟件開發(fā)

2017-10-26 11:44:19

工具語言編寫

2011-07-14 17:58:11

編程語言

2022-09-07 08:05:32

GScript?編程語言

2020-11-12 07:00:50

JavaScript前端編程語言

2013-07-26 10:23:04

點贊
收藏

51CTO技術(shù)棧公眾號

久久99精品国产99久久| 在线日韩日本国产亚洲| 99色这里只有精品| 性xxxx18| 日韩福利电影在线| 久久好看免费视频| 精品1卡二卡三卡四卡老狼| 三级在线看中文字幕完整版| 国产日产欧美一区| 91久久国产综合久久蜜月精品| 日本污视频在线观看| 欧美理论在线播放| 欧美成人高清电影在线| 国产性xxxx18免费观看视频| 国产做受高潮69| 日韩视频免费在线播放| 搞黄网站在线观看| 91小视频免费看| 成人看片人aa| 69视频免费看| 欧美天天在线| 国产亚洲免费的视频看| 一级黄色片毛片| 高清在线一区| 天天综合日日夜夜精品| 在线无限看免费粉色视频| 污视频网站在线播放| 激情综合色播激情啊| 5278欧美一区二区三区| caoporn91| 国产欧美日韩影院| 亚洲精品国产品国语在线| 一起操在线视频| 自拍偷自拍亚洲精品被多人伦好爽| 亚洲制服欧美中文字幕中文字幕| 99在线精品视频在线观看| 日韩欧美激情在线| 邪恶网站在线观看| 三妻四妾完整版在线观看电视剧| 亚洲免费在线电影| 亚洲欧洲免费无码| 九色视频网站在线观看| 成人小视频免费观看| 国产欧美中文字幕| 无码人妻精品一区二区三区蜜桃91| 极品av少妇一区二区| 久久久国产精品视频| 欧洲美熟女乱又伦| 国产亚洲欧美日韩在线观看一区二区 | 国产又粗又猛又爽又黄的视频小说| 日韩mv欧美mv国产网站| 亚洲第一在线视频| 久久久久亚洲av无码网站| 国产视频一区二区在线播放| 国产黄色在线免费观看| 午夜亚洲影视| 91国产精品视频在线| 动漫精品一区一码二码三码四码| 欧美精品aa| 欧美大胆a视频| 欧美日韩综合一区二区| 在线中文字幕亚洲| 超碰97人人做人人爱少妇| 久久久精品视频免费观看| 99视频精品视频高清免费| 日韩网站免费观看| 国产美女高潮视频| 天堂美国久久| 欧美大片免费观看| 国产乡下妇女做爰| 一本久道综合久久精品| 欧美综合一区第一页| 亚洲国产成人无码av在线| 亚洲欧美春色| 国产精品wwww| 国产内射老熟女aaaa∵| 久久99亚洲网美利坚合众国| 九九**精品视频免费播放| 亚洲精品日韩激情在线电影| www.xxx国产| 成人h版在线观看| 精品在线视频一区二区| 国产中文字幕在线看| 中文字幕乱码一区二区免费| 激情图片qvod| 国产在线美女| 在线精品视频一区二区| 中文字幕 欧美日韩| 欧美午夜网站| 亚洲美女性视频| 中文字幕在线观看二区| 欧美一区二区三区另类| 69视频在线播放| 怡红院男人的天堂| 国产一区二区福利| 久久免费99精品久久久久久| 麻豆系列在线观看| 亚洲国产毛片aaaaa无费看| 黄色国产精品视频| 亚洲一区二区三区久久久| 日韩三级精品| 91精品国产综合久久精品| av电影中文字幕| 九九久久精品| 欧美久久精品午夜青青大伊人| 日本在线视频免费| 蜜臀久久久久久久| 国产成人精品福利一区二区三区| 久草在线网址| 亚洲综合自拍偷拍| 浓精h攵女乱爱av| 成人影院中文字幕| 亚洲欧美在线一区| 久久国产在线视频| 免费不卡在线观看| 久久精品日产第一区二区三区乱码| 97视频在线观看网站| 午夜欧美2019年伦理| 九九热精品国产| 欧美极品在线观看| 欧美极品少妇xxxxⅹ喷水| 最新在线中文字幕| 91免费看`日韩一区二区| 中文字幕一区二区三区四区五区人| 色欲欲www成人网站| 亚洲欧洲自拍| 精品久久久久久久一区二区蜜臀| 99热6这里只有精品| 玖玖精品视频| 精品免费国产| www欧美xxxx| 91精品国产91热久久久做人人| 久久精品国产亚洲av久| 亚洲免费大片| 成人3d动漫一区二区三区91| 麻豆视频免费在线观看| 欧美性猛交xxxxxxxx| 最近中文字幕无免费| 国产一区亚洲| 999视频在线免费观看| 麻豆网站在线| 欧美精品欧美精品系列| 国产午夜福利一区| 欧美日韩爆操| 成人蜜桃视频| 免费影视亚洲| 日韩美女主播在线视频一区二区三区| 日日噜噜夜夜狠狠久久波多野| 久久成人18免费观看| 亚洲一二三在线| 亚洲bbw性色大片| 高清视频在线观看三级| 欧美成人一区二区三区片免费| 91嫩草丨国产丨精品| 久久爱www久久做| 欧美亚洲视频一区| 久久的色偷偷| 久久91精品国产91久久久| jlzzjlzzjlzz亚洲人| 亚洲色图制服诱惑| 亚洲国产欧美91| 在线观看国产精品入口| 成人午夜电影在线播放| 91制片在线观看| 亚洲精品电影在线| 日本中文字幕在线| 国产日韩欧美不卡| 在线观看国产福利| 欧美~级网站不卡| 国产成人精品免费视频大全最热 | 婷婷在线免费观看| 狠狠爱在线视频一区| 第一次破处视频| 另类综合日韩欧美亚洲| 色乱码一区二区三区熟女| 97se亚洲| 国产成人精品视| 黄色小网站在线观看| 日韩免费一区二区三区在线播放| 国产精品111| 国产日产欧美一区二区视频| 国产5g成人5g天天爽| 欧美午夜在线| 欧洲一区二区在线| 国产高清精品二区| 4438全国成人免费| 三区四区在线视频| 欧美精品一区二| 中文字幕在线观看视频一区| 一区二区三区四区在线播放 | wwwav网站| 欧美特级www| 日本裸体美女视频| 成人aaaa免费全部观看| 欧美日韩怡红院| 韩日成人在线| 午夜精品区一区二区三 | 亚洲综合色站| 好吊色欧美一区二区三区视频| 日本美女一区| 精品少妇v888av| 久草在现在线| 精品国精品国产尤物美女| 久久影视中文字幕| 一区二区三区四区蜜桃| 西西444www无码大胆| 国产精品一卡二卡在线观看| 无码人妻丰满熟妇区毛片| 91精品99| 日本精品视频一区| 成人性生交大片免费看96| 国产欧美一区二区三区视频| 激情aⅴ欧美一区二区欲海潮| www国产精品com| 色天堂在线视频| 日韩西西人体444www| 波多野结衣视频网址| 亚洲免费观看视频| av在线播放网址| 国产在线精品一区二区夜色| 久久精品99国产| 樱桃成人精品视频在线播放| 亚洲欧美日产图| 亚洲三级网址| 亚洲免费观看高清完整版在线| 国产伦精品一区二区三区免费视频| 福利一区视频| 国产经典一区二区| 日本黄色免费在线| 欧美精品日韩www.p站| porn亚洲| 亚洲最新在线视频| 免费在线黄色影片| 精品爽片免费看久久| 国产超碰人人模人人爽人人添| 欧美日韩一级二级| 在线免费观看国产精品| 午夜av一区二区| 国产一卡二卡在线| 亚洲一区二区三区精品在线| 日本天堂中文字幕| ...xxx性欧美| 疯狂试爱三2浴室激情视频| 中文字幕亚洲区| eeuss中文字幕| 国产精品欧美综合在线| 国产精品无码毛片| 97久久超碰精品国产| v天堂中文在线| 99久久精品国产一区| 国产福利在线观看视频| 99天天综合性| 亚洲第一页av| 久久在线观看免费| 亚洲国产日韩一区无码精品久久久| www久久久久| 久久久久久国产免费a片| 久久久久成人黄色影片| 人人爽人人爽人人片| 欧美激情中文不卡| 国产小视频你懂的| 亚洲女爱视频在线| 欧美极品视频在线观看| 希岛爱理av一区二区三区| 欧美主播一区二区三区| 91在线看视频| 色老汉av一区二区三区| 一级久久久久久| 欧美日韩日本视频| 国产婷婷在线视频| 精品日韩99亚洲| 天堂在线观看av| 亚洲精品中文字幕女同| 成黄免费在线| 久久综合九色九九| 丁香花在线高清完整版视频| 1769国内精品视频在线播放| 四虎成人在线| 99久久久久国产精品免费| 久久午夜影院| 国产99一区视频免费| 午夜精品久久久内射近拍高清| 日韩精品一卡二卡三卡四卡无卡| 国模私拍视频在线观看| 国产福利精品一区| 日本黄色片在线播放| 国产精品丝袜91| 久久国产在线视频| 色美美综合视频| 国产情侣在线播放| 精品视频www| 男人天堂久久久| 午夜精品久久久久久99热| 日韩欧美精品电影| 3d精品h动漫啪啪一区二区| 欧美亚洲大陆| 日日噜噜噜夜夜爽爽| 一区二区国产精品| 极品粉嫩美女露脸啪啪| 99久久er热在这里只有精品66| 成人免费视频入口| 午夜伊人狠狠久久| 亚洲天堂网在线观看视频| 精品国产青草久久久久福利| 成人一区二区不卡免费| 久久久久日韩精品久久久男男| 成人日韩av| 久久综合伊人77777麻豆| 亚洲天天影视网| 免费日韩视频在线观看| 国产电影一区在线| 国产熟女一区二区| 亚洲午夜电影在线观看| 亚洲一区中文字幕永久在线| 亚洲精品美女网站| av免费在线观看网址| 欧美资源在线观看| 国产主播性色av福利精品一区| 一区二区三区四区不卡| 欧美精品日韩| 99九九99九九九99九他书对| 久久久久国产免费免费| 国产高潮国产高潮久久久91| 欧美丝袜一区二区三区| 蜜臀av免费在线观看| 欧美xxxx14xxxxx性爽| 九九热这里有精品| 欧美一区三区二区在线观看| 中文日韩在线| 国产高潮视频在线观看| 亚洲激情av在线| 国产精品一区二区av白丝下载| 在线免费看av不卡| 国产av熟女一区二区三区| 在线视频精品| 怡红院一区二区| 亚洲国产精品精华液网站| 精品久久久中文字幕人妻| 日韩亚洲欧美中文在线| 天堂久久午夜av| 亚洲va韩国va欧美va精四季| 午夜一区在线| 中文字幕一区二区三区人妻不卡| 精品动漫一区二区| 十九岁完整版在线观看好看云免费| 韩剧1988免费观看全集| 国产精品99久久免费观看| 日本人妻伦在线中文字幕| 国产成人精品三级| 中文字幕在线观看成人| 日韩三级在线免费观看| 免费毛片在线看片免费丝瓜视频| 99久久99久久| 亚洲三级国产| 大黑人交xxx极品hd| 色屁屁一区二区| 可以在线观看的黄色| 国产精品第七十二页| 久久中文字幕二区| 999久久久精品视频| 一区二区三区 在线观看视频| 刘亦菲久久免费一区二区| 久久久久久成人| 亚洲都市激情| 天天操天天爱天天爽| 国产精品久久久久久久久动漫 | 国产精品密蕾丝视频下载| 久久久久一区二区| 首页国产欧美久久| 国产视频不卡在线| 91精品国产91综合久久蜜臀| 超级碰碰不卡在线视频| 久久精品国产一区二区三区日韩 | 日韩欧美中文视频| 亚洲一区二区三区四区在线| 亚洲欧美日韩动漫| 国产精品久久久久久久久久三级 | 国产人妻精品一区二区三区| 欧美福利视频在线观看| 外国成人在线视频| 黄大色黄女片18第一次| 亚洲三级在线看| 色呦呦免费观看| 国产精品美女主播| 欧美女激情福利| japanese中文字幕| 欧美一区二区三区视频| 漫画在线观看av| 亚洲高清视频一区二区| 成人一区二区视频| 亚洲av无码不卡| 欧美激情亚洲精品| 精品免费视频| 亚洲 自拍 另类 欧美 丝袜| 欧美性jizz18性欧美| 免费a级在线播放| 久久日韩精品| 国产精品99久久久久久有的能看 | 丰满人妻一区二区三区四区| 久久亚洲一区二区三区四区五区高|