教程 | 寫給Python程式員的Scala入門教程__Python

來源:互聯網
上載者:User
統計網導讀  本文從安裝、基礎資料類型、運算子、函數等七個方面系統介紹了Scala的語言特性。不僅是Python程式員,任何有編程經驗或者希望入門的人都可以看看,對Scala做一個基礎的認識。

隨著業務和資料的需要,我們引入了Spark。Spark對Python的支援還是挺好的,但畢竟它還是使用Scala開發的,且現有的API並沒有100%覆蓋Python。所以就有了這篇文章,讓Python程式員可以接觸Scala這門更高(級)、更快(速)、更強(大)的(奧運精神)語言。

Scala兼具Python樣的開發效率,但又有Java般的執行效能,真是一不可多得的神器。(當然,魚和熊不可兼得,Scala的入門曲線相比Python是要那麼陡峭一丟丟) 1安裝

一般Linux系統都內建Python環境,但Scala是沒有的。這需要我們手動安裝,還需要安裝Java環境。Java環境的安裝這裡就不介紹了,網上很多。說說Scala的安裝吧。下載地址在http://scala-lang.org/download/2.11.7.html。


1
2
3
4
5
6
7
8
9
wget -c http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz
tar zxf scala-2.11.7
cd scala-2.11.7
./bin/scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_60).
Type in expressions to have them evaluated.
Type :help for more information.

scala>


我們可以看到終端出現了scala>提示符,這個就像Python的REPL一樣,Scala也擁有一個REPL。我們可以在這裡很方便的編寫一些代碼,測試一些想法。

對於Scala常用的IDE(整合式開發環境),推薦使用IDEA for scala plugins和scala-ide。

Scala的強大,除了它自身對多核編程更好的支援、函數式特性及一些基於Scala的第3方庫和架構(如:Akka、Playframework、Spark、Kafka……),還在於它可以無縫與Java結合。所有為Java開發的庫、架構都可以自然的融入Scala環境。當然,Scala也可以很方便的Java環境整合,比如:Spring。若你需要第3方庫的支援,可以使用Maven、Gradle、Sbt等編譯環境來引入。

Scala是一個物件導向的函數式特性程式設計語言,它繼承了Java的面向對特性,同時又從Haskell那裡吸收了很多函數式特性並做了增強。 2Hello, world.

通常情況下,Java系的程式都需要有一個main方法來執行。並需要放入一個Web container容器,或打成一個jar包來執行。但是Scala不一樣,它除了支援傳統的Java方式,它也可以像Python一樣把代碼儲存到一個指令檔裡(.scala)執行,就像一個Shell指令碼一樣。


1
2
3
4
5
6
7
8
yangjing-mac-air:scala-2.11.7 jingyang$ cat test.scala 
#!/bin/sh
exec scala "$0" "$@"
!#
// Say hello to the first argument
println("Hello, "+ args(0) +"!")
yangjing-mac-air:scala-2.11.7 jingyang$ ./test.scala 楊景
Hello, 楊景!


(註:需要把$SCALA_HOME/bin加入系統內容變數才能直接執行scala命令)

可以看到,使用Scala,你除了像傳統的Java程式一樣把它做為一個“服務”的方式來啟動,你也可以把它像Python一樣做為一個“指令碼”來啟動。

(注意:Scala不像Python一樣通過代碼縮排來表示代碼的層次關係,而是和通常的語言一樣使用{}來表示代碼的層級。給程式員更多的自由) 3變數、基礎資料類型

Scala中變數不需要顯示指定類型,但需要提前聲明。這可以避免很多命名空間汙染問題。Scala有一個很強大的類型自動推導功能,它可以根據右值及上下文自動推匯出變數的類型。你可以通過如下方式來直接聲明並賦值。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.