Skip to content

Commit

Permalink
add package demo
Browse files Browse the repository at this point in the history
  • Loading branch information
yennan.liu committed Dec 15, 2021
1 parent b281b2f commit 45c7797
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 0 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,8 @@
- [OOP hw 1](./src/main/scala/ScalaHomework)

10. Scala advance
- Package object
- [demo](./src/main/scala/ScalaAdvance/PackageDemo)
- Parallel
- [parallel_Demo_1](./src/main/scala/ScalaAdvance/parallel_Demo_1.scala)
- Scala offers the `parallel` collections that can be processed in `parallel` with machines have multi-core CPU
Expand Down
27 changes: 27 additions & 0 deletions src/main/scala/ScalaAdvance/PackageDemo/demo1.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package ScalaAdvance.PackageDemo

/**
* Scala Package object demo 1
*
* ref : https://github.com/yennanliu/til#20211215
*
*/

import ScalaAdvance.PackageDemo.service.myService._

object demo1 extends App {

// demo 1 : package attr, method
println("planted " + planted)
printDefault("123")

println("=====================")

// demo 2 : package constructor's attr, method
val myService1 = new myService("m")
println("myService1 = " + myService1.toString)
myService1.print("hiiii")

val res1 = myService1.dummyHttpCall("hitttt")
println("res1 = " + res1)
}
33 changes: 33 additions & 0 deletions src/main/scala/ScalaAdvance/PackageDemo/service/myService.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package ScalaAdvance.PackageDemo.service

// https://docs.scala-lang.org/zh-cn/tour/package-objects.html

package object myService {

// attr
case class Fruit(name: String, color: String)
object Apple extends Fruit("Apple", "green")
object Plum extends Fruit("Plum", "blue")
object Banana extends Fruit("Banana", "yellow")

val planted = List(Apple, Plum, Banana)

// constructor
class myService(host:String){

// method
def print(input:String):Unit = {
println(">>>> input = " + input)
}

def dummyHttpCall(httpRequest:String):String = {
s"this is my request : $httpRequest"
}
}

// method
def printDefault(input:String):Unit = {
println(">>>> printDefault = " + input)
}

}
13 changes: 13 additions & 0 deletions src/main/scala/ScalaDev/test1.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package ScalaDev

object test1 extends App {

val x = List(1,2,3)

val x_1 = x.map( (i:Int) => i+1)

println (x_1.toString)

List((1,2),(2,3),(3,4),(2,5)).map(x => x.toString)
}

0 comments on commit 45c7797

Please sign in to comment.