饼乾的危险性:函式库 Library

诗忆最近正照着考古题写程序练习,写着写着她产生了疑问。「学姐,标准函式库这麽多函式可以用,什麽时候才会需要其他的函式库?」

「其实你已经看过其他的函式库罗。」

「咦?」诗忆对此毫无印象。

唯心没有卖关子,直接说出答案。「就是一开始的测试函式库呀。」她打开专案目录下的build.gradle.kt档案,游标移动到dependencies区块里的testImplementation这行。

图1

dependencies {
    implementation("org.junit.jupiter:junit-jupiter:5.7.0")
    testImplementation(kotlin("test"))
}

test资料夹下的函式库用的就是testImplementation,而main资料夹下用的是implementation。」唯心解释道。

「真的耶,但是完全没有用到的真实感⋯⋯」对诗忆来说,专案一开始就带上的函式库和标准函式库没什麽差异。

「那我们就来加个网路函式库okhttp吧,算是网路爬虫的起手式?」唯心提议。

「学姐也写过网路爬虫吗?」诗忆好奇地问。

「写过呀,但是是用其他语言,因为那时候Kotlin还没有诞生呢。」唯心说着先打开了okhttp官网,确认最新的版本号码是4.9.0後就加进对应的implementation

dependencies {
    implementation("com.squareup.okhttp3:okhttp:4.9.0")//新增这行
    implementation("org.junit.jupiter:junit-jupiter:5.7.0")
    testImplementation(kotlin("test"))
}

「学姐!出现了奇怪的大象图案!」白色的IDE出现任何东西都非常明显,诗忆一眼就看到了大象图案。

图2

「喔,那是一只待命中的大象,你不戳牠,牠不会工作。牠的工作就是通知IDEbuild.gradle.kt档案改动完成,可以同步到专案设定。同步完成,大象就回家了,我也可以开始import函式库。」唯心很快就照着官网的范例写出抓取网页档案的简单程序。

图3

图4

import okhttp3.OkHttpClient
import okhttp3.Request
import okio.IOException

fun main() {
    val client = OkHttpClient()
    val url = "https://www.google.com/"
    val request = Request.Builder()
        .url(url)
        .build();

    try {
        val response = client.newCall(request).execute()
        println(response.body?.string())
    } catch (e: IOException) {
        println(e.message)
    }
}

图5

「看到印出的一堆Html语法了吗?这证明我们成功拿到了Google首页的网页档案字串。」唯心刚说完就听见身边传出响亮的咕噜声。

「写程序很容易消耗能量呢。」她忍住笑意,从口袋里掏出一块饼乾递到诗忆的嘴边。「给你,餐厅这时间还没开呢。」

「唔嗯唔嗯唔嗯。」诗忆嘴里含着饼乾,话只能说得含糊不清。

唯心倒是能猜到她想说的话。「函式库再方便也是他人写的,就像这块饼乾你也不知道里面加了什麽料不是吗?」

「⋯⋯」

「放心,这个真的只是一块普通的饼乾。」


<<:  工作的意义与价值

>>:  [Day11] 以神经网络进行时间序列预测 — RNN

初学者跪着学JavaScript Day28 : 学迭代,学习不等待

一日客语:中文:报纸 客语:bo ziiˋ 最近很疑惑迭代物件和可迭代到底是什麽??於是查一下资料,...

DAY30-给他鱼不如给他钓竿,那麽钓竿哪来?

从新手到中手之路 铁人赛系列文的最後一篇,回顾一下第一篇立下的目标,要如何从新手到中手,分别从这几个...

NIST SP 800-53A R4-测试深度&测试范围

“覆盖范围属性解决了评估的范围或广度。” (NIST SP 800-53A)测试的范围与测试范围有关...

Day 30 KubeEdge的使用心得与总结

KubeEdge 使用心得 KubeEdge的使用导向应是以"云边协同"、&qu...

TailwindCSS 从零开始 - 价目表卡片实战 - 首页标题样式

前面讲了这麽多简单的观念与使用方法,接下来的九篇都会是搭配 JIT 模式的实作练习,就来做一个简易...