私はKotlinに静的関数がないことを知っていますので、OkHttpService.ktとmy.ktに2つのコードを書きます。Kotlinのクラスなしで、コンパニオンオブジェクトと楽しいことのどちらが優れていますか?
どちらが良いか分かりませんが、教えてください。ありがとう!
OkHttpService.kt
class OkHttpService {
companion object {
fun httpGet(username: String, callback: Callback) {
val fetchRepoUrl = "https://api.github.com/users/$username/repos?page=1&per_page=20"
val client = OkHttpClient()
val request = Request.Builder()
.url(fetchRepoUrl)
.build()
client.newCall(request).enqueue(callback)
}
}
}
定期object
を使用スコープについてはmy.kt
fun OkHttpService_httpGet(username: String, callback: Callback) {
val fetchRepoUrl = "https://api.github.com/users/$username/repos?page=1&per_page=20"
val client = OkHttpClient()
val request = Request.Builder()
.url(fetchRepoUrl)
.build()
client.newCall(request).enqueue(callback)
個人の好み。あなたはむしろクラスのような名前空間(OkHttpService)か、通常のpacakge-as-a-namespaceを持っていますか?後者では、明示的にオプションを指定する必要はありません: 'OkHttpService.httpGet()'。 –
ありがとう!それは楽しいという名前を捨てる方がいいですか? – HelloCW
申し訳ありませんが分かりません。個人的には、クラスのような名前空間のすべてが好きです。なぜなら、それは私にそれを使用するか静的にインポートするオプションを与えるからです。しかし、トップレベルの機能は、いくつかの状況で便利です(例えば、kts/replから呼び出す場合)。 –