Skip to content

Commit 8831eaf

Browse files
committed
fix markdown lint
1 parent 039a32b commit 8831eaf

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

Diff for: _th/tour/traits.md

+10-1
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,15 @@ Trait ใช้เพื่อแชร์ interface และ field ระห
1515
คลาส และ object สามารถขยาย trait ได้แต่ trait ไม่สามารถ instant เป็น object และไม่สามารถมี parameter ได้
1616

1717
## การกำหนด trait
18+
1819
วิธีที่ง่ายที่สุดในการกำหนด trait คือการประกาศด้วย keyword `trait` และ indentifier:
1920

2021
```scala mdoc
2122
trait HairColor
2223
```
24+
2325
trait จะมีประโยชน์อย่างยิ่งด้วยการเป็น generic type และเป็น abstract method
26+
2427
```scala mdoc
2528
trait Iterator[A] {
2629
def hasNext: Boolean
@@ -31,7 +34,9 @@ trait Iterator[A] {
3134
การขยาย `trait Iterator[A]` ต้องการ type `A` และ implementation ของ method `hasNext` และ `next`
3235

3336
## การใช้ traits
37+
3438
ใช้ keyword `extends` เพื่อขยาย trait ดังนั้นจะ implement abstract member ใดๆ ของ trait โดยใช้ keyword `override`:
39+
3540
```scala mdoc:nest
3641
trait Iterator[A] {
3742
def hasNext: Boolean
@@ -55,10 +60,13 @@ val iterator = new IntIterator(10)
5560
iterator.next() // returns 0
5661
iterator.next() // returns 1
5762
```
63+
5864
คลาส `IntIterator` นี้รับค่า parameter `to` เป็น upper bound มัน `extends Iterator[Int]` ซึ่งหมายความว่า method `next` จะต้อง return เป็น Int
5965

6066
## Subtyping
67+
6168
ในเมื่อ trait ที่ให้มานั้น required, subtype ของ trait สามารถถูกใช้แทนที่ได้
69+
6270
```scala mdoc
6371
import scala.collection.mutable.ArrayBuffer
6472

@@ -77,5 +85,6 @@ animals.append(dog)
7785
animals.append(cat)
7886
animals.foreach(pet => println(pet.name)) // พิมพ์ Harry Sally
7987
```
80-
`trait Pet` มี abstract field `name` ซึ่ง implement โดย Cat และ Dog ใน constructor ของมัน
88+
89+
`trait Pet` มี abstract field `name` ซึ่ง implement โดย Cat และ Dog ใน constructor ของมัน
8190
ในบรรทัดสุดท้าย เราเรียก `pet.name` ซึ่งจะต้องถูก implement แล้วใน subtype ใดๆ ของ trait `Pet`

0 commit comments

Comments
 (0)