var occupations = [

“Malcolm”: “Captain”,

“Kaylee”: “Mechanic”,

]

occupations[“Jayne”] = “Public Relations”

Kotlin

val occupations = mutableMapOf(

“Malcolm” to “Captain”,

“Kaylee” to “Mechanic”

)

occupations[“Jayne”] = “Public Relations”

空集合

Swift

let emptyArray = String

let emptyDictionary = String: Float

Kotlin

val emptyArray = arrayOf()

val emptyMap = mapOf<String, Float>()

FUNCTIONS

函数

Swift

func greet(_ name: String,_ day: String) -> String {

return “Hello (name), today is (day).”

}

greet(“Bob”, “Tuesday”)

Kotlin

fun greet(name: String, day: String): String {

return “Hello $name, today is $day.”

}

greet(“Bob”, “Tuesday”)

元组返回

Swift

func getGasPrices() -> (Double, Double, Double) {

return (3.59, 3.69, 3.79)

}

Kotlin

data class GasPrices(val a: Double, val b: Double,

val c: Double)

fun getGasPrices() = GasPrices(3.59, 3.69, 3.79)

参数的变量数目(Variable Number Of Arguments)

Swift

func sumOf(_ numbers: Int…) -> Int {

var sum = 0

for number in numbers {

sum += number

}

return sum

}

sumOf(42, 597, 12)

Kotlin

fun sumOf(vararg numbers: Int): Int {

var sum = 0

for (number in numbers) {

sum += number

}

return sum

}

sumOf(42, 597, 12)

// sumOf() can also be written in a shorter way:

fun sumOf(vararg numbers: Int) = numbers.sum()

函数类型

Swift

func makeIncrementer() -> (Int -> Int) {

func addOne(number: Int) -> Int {

return 1 + number

}

return addOne

}

let increment = makeIncrementer()

increment(7)

Kotlin

fun makeIncrementer(): (Int) -> Int {

val addOne = fun(number: Int): Int {

return 1 + number

}

return addOne

}

val increment = makeIncrementer()

increment(7)

// makeIncrementer can also be written in a shorter way:

fun makeIncrementer() = fun(number: Int) = 1 + number

映射

Swift

let numbers = [20, 19, 7, 12]

numbers.map { 3 * $0 }

Kotlin

val numbers = listOf(20, 19, 7, 12)

numbers.map { 3 * it }

排序

Swift

var mutableArray = [1, 5, 3, 12, 2]

mutableArray.sort()

Kotlin

listOf(1, 5, 3, 12, 2).sorted()

命名参数

Swift

func area(width: Int, height: Int) -> Int {

return width * height

}

area(width: 2, height: 3)

Kotlin

fun area(width: Int, height: Int) = width * height

area(width = 2, height = 3)

// This is also possible with named arguments

area(2, height = 2)

area(height = 3, width = 2)

CLASSES

声明

Swift

class Shape {

var numberOfSides = 0

func simpleDescription() -> String {

return “A shape with (numberOfSides) sides.”

}

}

Kotlin

class Shape {

var numberOfSides = 0

fun simpleDescription() =

“A shape with $numberOfSides sides.”

}

用法

Swift

var shape = Shape()

shape.numberOfSides = 7

var shapeDescription = shape.simpleDescription()

Kotlin

var shape = Shape()

shape.numberOfSides = 7

var shapeDescription = shape.simpleDescription()

子类

Swift

class NamedShape {

var numberOfSides: Int = 0

let name: String

init(name: String) {

self.name = name

}

func simpleDescription() -> String {

return “A shape with (numberOfSides) sides.”

}

}

class Square: NamedShape {

var sideLength: Double

init(sideLength: Double, name: String) {

self.sideLength = sideLength

super.init(name: name)

self.numberOfSides = 4

}

func area() -> Double {

return sideLength * sideLength

}

override func simpleDescription() -> String {

return "A square with sides of length " +

sideLength + “.”

}

}

let test = Square(sideLength: 5.2, name: “square”)

test.area()

test.simpleDescription()

Kotlin

open class NamedShape(val name: String) {

var numberOfSides = 0

open fun simpleDescription() =

“A shape with $numberOfSides sides.”

}

class Square(var sideLength: BigDecimal, name: String) :

NamedShape(name) {

init {

numberOfSides = 4

}

fun area() = sideLength.pow(2)

override fun simpleDescription() =

“A square with sides of length $sideLength.”

}

val test = Square(BigDecimal(“5.2”), “square”)

test.area()

test.simpleDescription()

类型检查

Swift

var movieCount = 0

var songCount = 0

for item in library {

if item is Movie {

movieCount += 1

} else if item is Song {

songCount += 1

}

}

Kotlin

var movieCount = 0

var songCount = 0

for (item in library) {

if (item is Movie) {

++movieCount

} else if (item is Song) {

++songCount

}

}

模式匹配

Swift

let nb = 42

switch nb {

case 0…7, 8, 9: print(“single digit”)

case 10: print(“double digits”)

case 11…99: print(“double digits”)

case 100…999: print(“triple digits”)

default: print(“four or more digits”)

}

Kotlin

val nb = 42

when (nb) {

in 0…7, 8, 9 -> println(“single digit”)

10 -> println(“double digits”)

in 11…99 -> println(“double digits”)

in 100…999 -> println(“triple digits”)

else -> println(“four or more digits”)

}

类型向下转换

Swift

for current in someObjects {

if let movie = current as? Movie {

print("Movie: ‘(movie.name)’, " +

“dir. (movie.director)”)

}

}

Kotlin

for (current in someObjects) {

if (current is Movie) {

println("Movie: ‘${current.name}’, " +

“dir. ${current.director}”)

}

}

协议

Swift

protocol Nameable {

func name() -> String

}

func f<T: Nameable>(x: T) {

print("Name is " + x.name())

}

Kotlin

interface Nameable {

fun name(): String

}

fun f<T: Nameable>(x: T) {

println("Name is " + x.name())

}

扩展

Swift

extension Double {

var km: Double { return self * 1_000.0 }

var m: Double { return self }

var cm: Double { return self / 100.0 }

var mm: Double { return self / 1_000.0 }

var ft: Double { return self / 3.28084 }

}

let oneInch = 25.4.mm

print(“One inch is (oneInch) meters”)

// prints “One inch is 0.0254 meters”

let threeFeet = 3.ft

print(“Three feet is (threeFeet) meters”)

// prints “Three feet is 0.914399970739201 meters”

Kotlin

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

推荐一些系统学习的途径和方法。

路线图

每个Web开发人员必备,很权威很齐全的Web开发文档。作为学习辞典使用,可以查询到每个概念、方法、属性的详细解释,注意使用英文关键字搜索。里面的一些 HTML,CSS,HTTP 技术教程也相当不错。

HTML 和 CSS:

html5知识

css基础知识

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-o46t0Wa4-1712837790573)]

最后

推荐一些系统学习的途径和方法。

路线图

每个Web开发人员必备,很权威很齐全的Web开发文档。作为学习辞典使用,可以查询到每个概念、方法、属性的详细解释,注意使用英文关键字搜索。里面的一些 HTML,CSS,HTTP 技术教程也相当不错。

HTML 和 CSS:

html5知识

css基础知识

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-6BCiCIfj-1712837790574)]

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐