it's so ....Come back at night suddenly saw into the huge manuscript, can't help to the three ye, and then nothing did 23 o'clock ... 85th: The powerful expressive battle of the for expression in ScalaGoal:Comparison and contact of higher order functions (FLATMAP,MAP) and for loops (initial)Gains:The back of the For loop is actually called map, but it is more likely to be programmed with a for loop if the statement is concise and expressive two.MORE:Run the instance code over and try it out.----
Note: This study originates from: DT Big Data DreamWorks (public number: Dt_spark)In Scala , we usually use syntax similar to function calls. For example, if s is a string, then s (i) is the first character of the string . (And in java , you would write:s.charat (i).) Run the following code in idea:println ("Hello (4)")//will print out ' o 'You can use this as an overloaded form of the () operator, and the implementation behind it is a method called
001-scala Development environment Construction and HelloWorld parsing650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M01/6F/7A/wKiom1Wd1vGx30HBAAST-S83WFU734.jpg "title=" 001- Scala development Environment Building and HelloWorld parsing. png "alt=" wkiom1wd1vgx30hbaast-s83wfu734.jpg "/>scalafunctional programming and object-oriented languagefunctional Programming excels at numerical calculationsObj
Upper bound and lower bound
Declare Lower bound with:>, which is the parent class constraint, a:> B, a must be the parent of BWith Examples of Lower boundPackage Ch6object Test4 {println ("Welcome to the Scala Worksheet") class A {type B;: List[int] def foo (A: B) = a} val x = new A {type b = Traversable[int]} Set (1) X.foo (set (1))//Val y = new A {type b = set[int ]}//Compilation Error}Thus, the meaning of a:> B is: The parent class of B or a t
for (generator; definition; filter) to Do data filtering queryPackage Com.dt.scala.forexpressionCase Class Book (title:string, Authors:list[string])Object For_query {def main (args:array[string]) {Val Books:list[book] = List (Book ("Structure and Interpretation", List ("Abelson, Harold", "Sussman"),Book ("Principles of Compiler Design",List ("Aho, Alfred", "Ullman, Jeffrey")),Book ("Programming in Modula-2", List ("Wirth, Niklaus")),Book ("Introduction to Functional Programming", List ("Bird, Ri
The code jumps inside the for loop are map, withfilter, etc.For is more direct than MAP,FILTER,FLATMAP, can be implemented with a for replacementPackage Com.dt.scala.forexpressionObject For_advanced {def main (args:array[string]) {}def Map[a, b] (list:list[a], f:a = b): list[b] =for (element def Flatmap[a, B] (list:list[a], f:a = List[b]): list[b] =for (x def Filter[a] (list:list[a], f:a = Boolean): list[a] =for (Elem }DT Big Data Dream Factory public account: Dt_spark.DT Big Data Dream Factory'
Note: This study originates from: DT Big Data DreamWorks (public number: Dt_spark)1.in the previous section we learned about Scala Hello World, specifically defining a function as follows:650) this.width=650; "src=" http://s3.51cto.com/wyfs02/M02/70/40/wKiom1W1CI_DmfpAAAGAJtFJ734715.jpg "title=" 1.png " alt= "Wkiom1w1ci_dmfpaaagajtfj734715.jpg"/>2.define a function without parameters, as follows:650) this.width=650; "src=" http://s3.51cto.com/wyfs02/M
Some time ago Read the "Fast Learning Scala", feel that writing is not very good, so began to see this "programming Scala", the book's Code has been realized a bit, now put in the blog to share.
Package BASE04
/**
* Scala's class
* Created by DD on 2016/5/18 0018.
*
/Object demo01 extends app{
class car (val year:int) {
private var milesdriven:int = 0
def miles () = Miles Driven
def D
The Akka provides scalable, real-time transaction processing capabilities.The Akka is based on actor and provides location transparency.The 1GB heap can have 2.5 million actors.Horizontal expansion, vertical expansion, fault tolerance 3 ways to solve.The actor of the tree structure, each actor has state and behavior.DT Big Data Dream Factory public account: Dt_spark.DT Big Data Dream Factory's public number is Dt_spark, every day will have big data actual combat video release, please continue to
= { //similar to defining a static method initialization, using C to refer to a method var c=c () c.apply () c.test () }}3. Use apply to achieve a singleton mode, let's do a test. Reference the associated object C with C and C1, respectivelyPackage Smart.iotclass Applyclass { }class a{ def Test () =println ("function test") def apply () =println ( "Hello class A");} Object b{ def apply () =println ("Hello object B");} Similar to a factory method, use the C apply method
:: Appends the object to the head of the list.The head part of an existing list[subclass X] is placed in another object A, which is a subclass Y, and if both a object and the original list object inherit from the same parent class, the list is displayed as the list[parent class].The parameters of the function are contravariant so that covariance cannot occur, so the nether is used to solve the problem. The object to which the:: Method returns is programmed as a list of upper bound object B.inter
Default value:def saymyname (name:string = "Jack") {println (name)}Variable parameters:def summoreparameters (elem:int*) = { var sum = 0for (e Use of underscores:def add (a:int,b:int) = a+bdef add2 = Add (_:int,2)Recursive functions: Need to explicitly give the return type of the functiondef FAC (n:int): Int = if (n function currying:Write this argument independently, this is curryingdef mulitply (X:int) (y:int) = x*ydef m2 = mulitply (2) _;Curry is the parameter can be separated, some of the
(transformation) and the Action (action). The main difference between the two types of functions is that transformation accepts the RDD and returns the RDD, while the action accepts the RDD to return the non-rdd.The transformation operation is deferred, meaning that a conversion operation that generates another RDD from an RDD is not performed immediately, and t
engineeringOften there is no scala-archetype-simple model when creating a MAVEN project, so you will need to manually add the custom catalog, adding the method as shown below:Step: window-->preferences--->maven--->archetype the next action is as follows:Website:http://repo1.maven.org/maven2/archetype-catalog.xmlNext:3, the last problem is the most important, because Spark is written in scala2.10.4, then yo
] = spark.MappedRDD@2ee9b6e32. RDD has two types of operations: action (return values) and transformations (return a new RDD). Below we start a few actions:
Scala> textFile. count () // Number of items in this RDDres0: Long = 74 scala> textFile. first () // First item in this RDDres1: String = # Spark3. Use the filter in transformations to return the new RDD of a
Scala supports associative mappings, such as a key-value pair that can be represented by (key, value)
All types in Scala are objects, including basic data types
The case statement in Scala is used to determine the received message, which is more than the switch...case in Java ... More focusedreceive{Case msg = action
code in this for loop will not be executed, so we have reached the " Don't check if option is none.val map1 = Map("key1""value1"val value1 = map1.get("key1"val value2 = map1.get("key2"def printContentLength(x: Option[String]) { | for (c 6scala> printContentLength(value2)Map operationsOne of the core concepts in functional programming is the conversion, so most of the supported functional programming languages support an action called map (), wh
An expression
Scala> 1 + 1
res0:int = 2
value
You can assign the result of an expression to a variable (val) by name.
scala> val two = 1 + 1
two:int = 2
variable
If you need to modify the binding of this name and result, you can choose to use Var.
scala> var name = "Steve"
name:java.lang.String = Steve
scala> name
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.