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

五月婷婷深深爱| 国产午夜精品一区二区理论影院| 成人在线中文| 亚洲人成人一区二区在线观看| www.久久艹| 欧美性猛交bbbbb精品| 久久社区一区| 亚洲国产精品va在线看黑人动漫| 热久久精品免费视频| 超碰porn在线| 99久久99久久久精品齐齐| 国产精品日韩在线| 一级aaa毛片| 久久精品国产68国产精品亚洲| 亚洲精品在线免费播放| 日韩精品你懂的| 免费在线观看的电影网站| 久久精品一区二区三区不卡| 5566中文字幕一区二区| 亚洲 日本 欧美 中文幕| 自拍视频亚洲| 中文字幕日韩精品有码视频| 亚洲の无码国产の无码步美| 精品麻豆剧传媒av国产九九九| 日韩欧美在线一区| 免费的一级黄色片| p色视频免费在线观看| 不卡av电影在线播放| 91九色精品视频| 欧美黄色一级大片| 国产亚洲毛片在线| 欧美激情视频免费观看| 登山的目的在线| 精品国产一区二区三区久久久蜜臀 | 精品国产欧美一区二区| www.久久久久久久久久久| 日本精品不卡| 图片区小说区区亚洲影院| 日韩精品一区二区三区电影| 91露出在线| 欧美韩国日本一区| 日韩精品成人一区二区在线观看| 午夜福利视频一区二区| 成人av午夜影院| 国产精品入口免费| 黑人操亚洲女人| 成人手机电影网| 国产成人免费电影| 韩国av永久免费| 成人一级视频在线观看| 国产精品久久久久久久免费大片 | 国产一区二区三区免费视频| 97伦伦午夜电影理伦片| 亚洲男人都懂第一日本| 亚洲欧美变态国产另类| 国产精品高清无码在线观看| 久久99影视| 一区二区三区视频免费| 草草影院第一页| 郴州新闻综合频道在线直播| 曰本色欧美视频在线| 极品尤物一区二区| 香蕉综合视频| 欧美激情视频一区二区| 日本在线视频免费观看| 日韩午夜激情| 国产成人午夜视频网址| 中日韩av在线| 国产中文字幕一区| 国产日韩亚洲精品| 女人天堂在线| 中文字幕在线不卡一区| 青青草综合在线| av人人综合网| 欧美中文字幕一区| 亚洲国产欧美91| 国产香蕉精品| 国产一区二区三区毛片| 亚洲av无码一区二区三区在线| 国产精品av一区二区| **欧美日韩vr在线| 一区二区小视频| 丁香五精品蜜臀久久久久99网站| 麻豆传媒一区二区| 日本美女高清在线观看免费| 亚洲一区二区在线视频| 成人三级视频在线播放| 国产精品1区在线| 日韩激情在线视频| 国产亚洲精品久久久久久豆腐| 国内综合精品午夜久久资源| 日韩美女激情视频| 99热在线只有精品| 久久久欧美精品sm网站| 欧美日韩dvd| 唐人社导航福利精品| 91精选在线观看| 性久久久久久久久久| 欧美va久久久噜噜噜久久| 久久久中文字幕| 中文字幕视频免费观看| 高清免费成人av| 亚洲免费精品视频| 欧美男人天堂| 日韩欧美你懂的| 日本一区二区视频在线播放| 狠久久av成人天堂| 欧美最顶级丰满的aⅴ艳星| 午夜久久久久久久久久| 国产精品久久久久久妇女6080| 日本丰满少妇xxxx| 国产一区二区三区免费观看在线| 亚洲欧美日本精品| 黄色小视频在线免费看| 国内欧美视频一区二区| 日本一区二区三区在线视频 | 99久久婷婷| 欧美在线视频免费| 日本加勒比一区| 亚洲天堂av一区| 91香蕉视频污版| 亚洲欧洲免费| 午夜精品理论片| 性猛交富婆╳xxx乱大交天津| 国产精品网站在线观看| 成人免费观看毛片| 日本一区福利在线| 97精品视频在线播放| www.97超碰| 亚洲精品中文在线影院| 欧美美女一级片| 成人看的羞羞网站| 日韩美女视频免费看| 无码精品黑人一区二区三区| 亚洲精品乱码久久久久久黑人| 日本黄色的视频| 日韩视频在线观看| 国产精品视频99| 777电影在线观看| 欧美三区在线观看| 成熟人妻av无码专区| 日韩成人精品在线观看| 日本一区二区不卡高清更新| 韩国精品主播一区二区在线观看| 精品在线观看国产| 日本高清不卡码| 久久久久久夜精品精品免费| 国产精品免费观看久久| 国产一区二区精品久| 日韩美女视频在线观看| 国产小视频免费在线观看| 日韩欧美国产高清91| 一级片手机在线观看| 日产国产欧美视频一区精品| 天堂精品一区二区三区| 岛国一区二区| 插插插亚洲综合网| 国产小视频免费观看| 狠狠色噜噜狠狠狠狠97| 国产女主播喷水高潮网红在线| 亚洲欧美日韩国产一区| 日韩精品不卡| 精品一区二区三区在线观看视频| 欧美激情国产高清| 日本免费不卡| 欧美日韩在线播| 日韩成人毛片视频| 大美女一区二区三区| www.浪潮av.com| 精品产国自在拍| 成人乱色短篇合集| a毛片不卡免费看片| 亚洲日韩中文字幕| 国产精品久久久久久久久久久久久久久久 | 亚洲欧美一二三区| 最新欧美精品一区二区三区| av不卡中文字幕| 久久久亚洲一区| 亚洲美女自拍偷拍| 开心激情综合| 国产免费一区二区三区在线观看| 日本aa在线| 亚洲人成电影网站| 99久久夜色精品国产亚洲| 精品免费在线视频| 福利视频第一页| 成人av片在线观看| 在线免费视频一区| 99国产精品视频免费观看一公开| 亚洲成人一区二区三区| 91精品尤物| 国产精品国产自产拍高清av水多| 羞羞视频在线观看不卡| 亚洲老板91色精品久久| av在线资源观看| 日本电影亚洲天堂一区| 欧美黑人一级片| 欧美激情一区在线| 亚洲中文字幕无码一区| 久久精品理论片| 国产毛片视频网站| 婷婷久久国产对白刺激五月99| 久久riav| 中文一区二区三区四区| 国产福利成人在线| av今日在线| 久久福利网址导航| av在线女优影院| 日韩精品视频在线观看网址| 国产成a人亚洲精v品无码| 在线观看日韩国产| 久久99精品波多结衣一区| 亚洲免费在线看| 特级西西人体高清大胆| 久久人人爽爽爽人久久久| 国产av一区二区三区传媒| 久久成人综合网| 激情视频综合网| 国产免费成人| 国产精品无码人妻一区二区在线 | 久久综合久久八八| 不卡在线视频| 亚洲日本中文字幕| 青青青免费视频在线2| 亚洲第一色中文字幕| 国产suv精品一区二区69| 欧美日韩欧美一区二区| 久久精品国产亚洲av麻豆蜜芽| 欧美日韩国产麻豆| 日本视频免费在线| 午夜久久久久久久久久一区二区| 欧美国产日韩在线观看成人| 国产精品国产自产拍高清av| 免费黄色在线网址| 欧美国产日本视频| 国产精品成人在线视频| 中文字幕电影一区| 99精品全国免费观看| 国产日韩高清在线| 东方伊人免费在线观看| 国产精品丝袜久久久久久app| 白白色免费视频| 国产日韩精品一区二区三区 | 精品国产成人| 日韩欧美99| 久久亚洲国产| 国产精品亚洲天堂| 一区二区三区四区日韩| 300部国产真实乱| 亚洲一级影院| 又粗又黑又大的吊av| 亚洲一区日韩| 欧美在线观看视频网站| 日本不卡一二三区黄网| 中文字幕精品一区二区三区在线| 精品一区二区成人精品| 亚洲精品在线网址| 成人av网址在线| 国产精品无码午夜福利| 久久精品一区八戒影视| 国精产品视频一二二区| 亚洲欧美精品午睡沙发| 国产一级av毛片| 日韩欧美成人区| 亚洲中文字幕在线观看| 欧美一级片在线观看| 开心激情综合网| 亚洲男人天堂网| 日本中文字幕在线观看| 欧美激情a在线| 不卡av播放| 91精品国产综合久久久久久久久| 亚洲一区二区电影| 欧美色欧美亚洲另类七区| 久久中文字幕av| 免费人成在线观看视频播放| 久久国产精品毛片| 午夜精品久久久久久久99热影院| 国产精品99久久久久久似苏梦涵 | 在线免费观看av网| 成人黄色大片在线观看 | 91精品1区2区| 国产女人高潮毛片| 精品无人区乱码1区2区3区在线| www.在线播放| 91高清在线免费观看| 男女啪啪999亚洲精品| 91欧美视频网站| 亚洲免费观看高清完整版在线观| 一区二区不卡在线视频 午夜欧美不卡'| 欧美国产高清| 国产91色在线观看| 91香蕉视频污在线| 裸体武打性艳史| 色婷婷综合五月| 亚洲av无码专区在线| 在线观看欧美视频| 国产白浆在线免费观看| 91亚洲人电影| 精品国产一区二区三区噜噜噜| 可以看毛片的网址| 狠狠色丁香久久婷婷综合丁香| 国产麻豆天美果冻无码视频 | 成人激情免费网站| 黄色香蕉视频在线观看| 色欧美片视频在线观看 | 99精品桃花视频在线观看| 黄色精品视频在线观看| 色呦呦一区二区三区| 乱精品一区字幕二区| 蜜臀久久99精品久久久久久宅男| 欧美电影免费看| 精品久久久久亚洲| 欧美啪啪一区| 一级黄色大片儿| 国产精品色噜噜| 精品成人无码久久久久久| 亚洲国产成人久久综合一区| 永久免费网站在线| 国产综合久久久久| 国产精品国产一区| 少妇一级淫免费放| 国产欧美在线观看一区| 欧美精品韩国精品| 日韩福利视频在线观看| 欧美黑人猛交的在线视频| 亚洲mm色国产网站| 天天射综合网视频| 午夜免费一级片| 国产精品久久久久久户外露出| 中文有码在线播放| 一本一道久久a久久精品逆3p| 一区二区三区四区日本视频| 精品一区二区久久久久久久网站| 伊人狠狠色j香婷婷综合| 91精品国产高清91久久久久久| 亚洲欧美日韩在线不卡| 国产免费的av| 欧美刺激性大交免费视频| 国产精品亚洲欧美一级在线| 日本黄色播放器| 韩国午夜理伦三级不卡影院| 国产免费一区二区三区四区| 欧美日本在线一区| 老司机99精品99| 92国产精品视频| 欧美特黄a级高清免费大片a级| 日本黄色www| 亚洲国产一区二区三区| 午夜视频1000| 日本亚洲精品在线观看| 成人看的羞羞网站| 91小视频在线播放| 亚洲一区二区三区三| 天堂在线资源库| 日本久久久久久久久| jvid福利在线一区二区| 奇米视频888| 亚洲女同一区二区| 好吊色在线观看| 日本免费一区二区三区视频观看| 精品国产中文字幕第一页 | 不卡精品视频| 国产尤物av一区二区三区| 国产成a人无v码亚洲福利| 国产成人无码精品久久久久| 亚洲欧美在线第一页| 国精品产品一区| 人妻互换免费中文字幕| 91小视频在线观看| 中文字幕一区二区人妻| 精品中文字幕在线观看| 色婷婷av一区二区三区丝袜美腿| 日日摸天天爽天天爽视频| 亚洲色图清纯唯美| 少妇av一区二区| 国产精品视频久久久| 午夜精品999| 中文字幕在线1| 欧美一级一级性生活免费录像| 免费看男女www网站入口在线| 视频一区三区| 成人免费高清视频在线观看| 男人的天堂av网站| 欧美国产激情18| 欧美色图在线播放| 精品少妇人妻av一区二区三区| 在线精品视频一区二区| 污视频网站在线免费| 欧美日韩免费精品| 国产成人三级在线观看| 在线观看国产区| 久久免费福利视频| 久久性感美女视频| 色婷婷av777| 精品久久久久久最新网址| 99精品国自产在线| 欧美国产激情视频| 一区二区三区四区国产精品| av资源种子在线观看|