Java programmers, why do you need to pay attention to Scala, Java programmers, and Scala?
Let's take a look at Martin Odersky's design goals for Scala. What aspects should be taken into account in the process of creating a language that surpasses Java?
Concession
Frank Sommers: You mentioned earlier that you want to create a language that exists in the Java
NothingNothing is a subclass of all types, and is also a subclass of NULL. Nothing has objects, but can be used to define types. For example, if a method throws an exception, the return value type of the exception is nothing (although it is not returned).def get(index:Int):Int = { if0thrownew Exception(...) else ....}If the statement is an expression with a return value, there must be a return value type, if x NullNull is a subclass of all Anyref, in Scala's type system, Anyref is a subcla
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 ... 88th: Scala uses the for expression to implement map, FLATMAP, filterGoal:For expression Implementation Map/flatmap/filterGains:Map/flatmap/filter is a generic typeMORE:。。。。。。------------------------------------------------------------------------------------information from DT Big Data Dream Factory public account:Dt_s
One of the core features of functional programming is to pass functions as parameters to functions, to define functions inside functions, and so on.1, hands-on Scala high-order functionsDeclares a list collection instance:
The package that contains the list collection is already pre-defined and automatically imported, so there is no need to import the package here, and this is where the list instantiation object is used, which is actually the App
This is a Scala by Example from the official website.The example of how Scala is used in more detail after tutorial1.Programing with Actors and Message2.Expressions and Simple Functions3.first-class Functions4.Class and Objects5.Case Classes and Pattern Matching6.Generic Types and Methods7.Lists8.for-comprehensions9.Mutable State10.Computing with Streams11.Lazy Values12.Implicit Parameters and Conversions13
Basic content1. Array definitionsDefinition of fixed length, variable array, element addition, deletion, sorting, summation and other common operationsImport Scala.collection.mutable.ArrayBufferimport scala.math.bigdecimal.roundingmode/** * @author Xwolf * @date 2017-04-09 18:23 * @since 1.8 */object Collection {def main (arg:array[string]): Unit ={Multiplearray ()}/** * Array Creation */private def create (): unit={val a = new array[string] (1) A (0) = "Hello" println (A.tobuffer) Val A b =a
Package Com.leegh.implicits/*** @author Guohui Li*/Object Context_implicits {Implicit val default:string = "Java"}Object Param {def print (content:string) (implicit language:string) {println (language + ":" + content)}}Object Context_parameters {def main (args:array[string]): Unit = {Param.print ("Spark") ("Scala")Import Context_implicits._Param.print ("Hadoop")}}Report:This blog description:1. Organize your ideas and improve yourself.2. Be educated i
We know that everything in Scala is an object, a function is an object, a number is an object, and it's a more object-oriented language than Java.Simple classes that define ScalaClass Point(val x:int, val y:int) The previous line of code is the definition of a Scala class:
The first is the keyword class
followed by the class name point
The parentheses after the class name are the const
Package Com.leegh.parameterization/*** @author Guohui Li*/Because breathe returns This,scala the return type is inferred as animal, and because animal has no eat methodClass Animal {def breathe = this}Class Cat extends Animal {def eat = this}Class Animal {def Breathe:this.type = this}Class Cat extends Animal {def eat:this.type = this}Object Singleton_types {def main (args:array[string]): Unit = {Val cat = new CatCat.breathe.eat}}Report:This blog descr
Note: This study originates from: DT Big Data DreamWorks (public number: Dt_spark)1. Download the Scala installation package First:For subsequent spark Learning, we need to choose version:2.10.4Http://www.scala-lang.org/download/2.10.4.html2. After installation, choose the Scala IDE, one is the Eclipse Scala IDE, the other is Intellij ideaBecause of personal pref
Note: This study originates from: DT Big Data DreamWorks (public number: Dt_spark)1. Download the Scala installation package First:For subsequent spark Learning, we need to choose version:2.10.4Http://www.scala-lang.org/download/2.10.4.html2. After installation, choose the Scala IDE, one is the Eclipse Scala IDE, the other is Intellij ideaBecause of personal pref
Scala getting started-10 implicit conversions, implicit parameters, implicit classes, scala-10
So far, implicit conversion is the key and difficulty of scala ~
First, create a class named Implicit. scala.
Let's look at an example of an implicit parameter:
The implicit parameters are used in the above exampl
Scala: Pack, scala
Scala has the same purpose as a java package or a c ++ namespace. It can contribute content to multiple packages in the same file.
Use the full package name whenever possible. Avoid using scala, java, com, org, and so on to name nested packages. The concatenation package statement can limit the v
A, Scala is a compiled language, you can call Java code at will;B, Scala Functional programming language, in the Scala world, the function is a class citizen;
Functions can be passed as parameters, can be assigned to variables, and can be returned as return values
in Scala, there are nested functions, anonymou
First, the foregoing
The functions in Scala are still more important, so this article enumerates the functions that may be used in Scala and explains them in detail.
Second, the specific function
1, the definition of Scala function
def fun (A:int, b:int): unit = {
println (a+b)
}
Fun (1,1)
def fun1 (a:int, b:int) = A+b
printl N (fun1 (1,2))
No
The take in list is implemented with Listbuffer:version 2.10.xHowever, in the 2.11.x version, it is not:override def take (n:int): list[A] = if (IsEmpty | | n val h = new::(head, Nil)var t = hvar rest = tailvar i = 1while ({if (rest. isEmpty) return this; i i + = 1val NX = new::(rest. Head, Nil)t.tl = NXT = NXrest = rest. Tail}h}final Case class:: [B] (override Val head:b, private [Scala] var tl:list[b]) extends List[b]declared as VAR allows listbuffe
Final Case class:: [B] (private var hd:b, Private[scala] var tl:list[b]) extends List[b]TL is limited access through private to ensure the immutability of TL, so that in the building of the head element HD different and then the list of the same new list can be directly pointed to the TL, efficient.This ensures both functional programming and efficient creation of new objects.interested friends please pay attention to DT Big Data Dream Factory public
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
3, hands on the abstract class in ScalaThe definition of an abstract class requires the use of the abstract keyword:
The above code defines and implements the abstract method, it is important to note that we put the direct running code in the trait subclass of the app, about the inside of the app helps us implement the Main method and manages the code written by the engineer;Here's a look at the use of uninitialized variables in an abstract class:
4, hands-on trait in ScalaTrait
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.----
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.