首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我不能用Kotlin写这个特殊的任务?

Kotlin是一种现代化的编程语言,可用于开发各种应用程序,包括移动应用、Web应用和后端服务。它具有许多优点,如简洁性、安全性、互操作性和可靠性。然而,对于特定的任务,可能不适合使用Kotlin来完成。以下是一些可能的原因:

  1. 生态系统限制:Kotlin相对于其他编程语言来说,生态系统相对较小。这意味着在某些特定领域,可能缺乏特定库、框架或工具的支持,从而使得使用Kotlin开发相关任务变得困难。
  2. 平台限制:Kotlin最初是为Java虚拟机(JVM)设计的,因此在其他平台上的支持可能有限。如果特殊任务需要在非JVM平台上运行,如嵌入式系统或特定硬件设备,那么Kotlin可能无法满足需求。
  3. 性能要求:尽管Kotlin在性能方面表现良好,但对于某些特殊任务,如高性能计算或实时系统,可能需要更接近底层的编程语言,以获得更好的性能。
  4. 已有代码库:如果特殊任务需要与已有的代码库或项目集成,而这些代码库或项目是使用其他编程语言编写的,那么使用Kotlin可能会导致集成困难或不兼容的问题。

总之,虽然Kotlin是一种强大的编程语言,但在某些特殊任务中可能不是最佳选择。在选择编程语言时,需要综合考虑任务需求、生态系统支持、平台限制和性能要求等因素。

相关搜索:为什么我写的文件不能用Python保存输入的文本?为什么我不能让Selenium识别这个特殊的span元素?我想知道为什么这个按钮不能用。我的代码错了吗?为什么我不能用这个类填充CSV文件中的arrayList为什么我的MSBuild自定义任务不工作?为什么我的代码不执行这个语句: int(n)?为什么我的手机汉堡不能用了?如何解决这个问题?为什么这个sass任务不能在我的gruntfile.js中运行?完成任务的角度函数我搞不懂为什么是这个函数为什么这个不循环遍历我的整个邮政编码文件?为什么Dagger2不注入我的Kotlin Android应用程序?在这个例子中,为什么我不能用它的返回值替换函数名呢?为什么我不能用我的python脚本打开这个特定的可执行文件,有解决方法吗?为什么我不能对我用python写的这个基本的linkedlist方法做一个基本的测试呢?如果文字不包含通配符,为什么我不能用<>文字替换ISNULL(列,文字)不像文字的原因?为什么我写的这个服务器没有检测到客户端已关闭套接字呢?任务-濒临灭绝的物种。如何解决这个问题?为什么我不能读取未定义的属性'length‘。这个问题的描述如下为什么我的导航链接不工作。我得到这个错误:“未使用'NavigationLink<Label,Destination>‘初始值设定项的结果”为什么我得到这个错误:参数(字符串,数字)与SpreadsheetApp.Spreadsheet.getRange的方法签名不匹配为什么我的石头布剪刀游戏不工作?它总是返回‘你选择了摇滚,你赢了’,我该怎么解决这个问题?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【码上开学】Kotlin 的高阶函数、匿名函数和 Lambda 表达式

首先我写的这个 Fun 作为函数类型其实是错的,Kotlin 里并没有这么一种类型来标记这个变量是个「函数类型」。...,都叫做高阶函数,这只是个对这一类函数的称呼,没有任何特殊性,Kotlin 的高阶函数没有任何特殊功能,这是我想说的。...那既然都是一个东西,为什么不直接写函数名,而要加两个冒号呢? 因为加了两个冒号,这个函数才变成了一个对象。 什么意思?...不过我们先停下想一想:这个 Lambda 这也不写那也不写的……它不迷茫吗?它是怎么知道自己的参数类型和返回值类型的? 靠上下文的推断。我调用的函数在声明的地方有明确的参数信息吧?...但是我们刚才也说过了函数是不能作为参数传递,也不能赋值给变量的,对吧? 那为什么匿名函数就这么特殊呢? 因为 Kotlin 的匿名函数不——是——函——数。它是个对象。

2.1K20

那个男人再发力,原来我以前学的 Lambda 都是假的

首先我写的这个 Fun 作为函数类型其实是错的,Kotlin 里并没有这么一种类型来标记这个变量是个「函数类型」。...,都叫做高阶函数,这只是个对这一类函数的称呼,没有任何特殊性,Kotlin 的高阶函数没有任何特殊功能,这是我想说的。...那既然都是一个东西,为什么不直接写函数名,而要加两个冒号呢? 因为加了两个冒号,这个函数才变成了一个对象。 什么意思?...不过我们先停下想一想:这个 Lambda 这也不写那也不写的……它不迷茫吗?它是怎么知道自己的参数类型和返回值类型的? 靠上下文的推断。我调用的函数在声明的地方有明确的参数信息吧?...但是我们刚才也说过了函数是不能作为参数传递,也不能赋值给变量的,对吧? 那为什么匿名函数就这么特殊呢? 因为 Kotlin 的匿名函数不——是——函——数。它是个对象。

65820
  • MAC上使用Android Studio 3.0的Gradle问题小解

    今天开始认真学习安卓开发( ),我就打算直接使用 Kotlin 语言在 AS 3.0 中写代码,简洁又高效。...用过 Linux 系统的朋友很清楚,一个命令行就可以知道: gradle -v 这个命令能查看 Gradle 的版本,我的 Mac 显示 no such command ,所以先安装 Gradle ,参考官网安装指导...,我用的 Homebrew : $ brew install gradle 这样安装好之后,一般 Gradle Home 也设置好了,我写此文的时候 Gradle 在我机器上的版本是 3.5 。...OK 了,开始写代码吧!不过我还是碰到了一些不爽的问题,就像我上面描述的:Build 速度超慢、 support 包不能正确编译、 Genymotion 模拟器连接不上等。...另外我还遇到了一个问题: implementation 'com.android.support:appcompat-v7:25.4.0' 还是不能用,不知道为什么,有朋友知道恳请留言指导,谢谢!

    2.6K20

    Kotlin 协程总结

    现在先把这个概念放下,只需要记住协程就是这样写的就行了。 这种「用同步的方式写异步的代码」看起来很方便吧,那么我们来看看协程具体好在哪。...为什么 suspend关键字并没有实际去操作挂起,但 Kotlin 却把它提供出来? 因为它本来就不是用来操作挂起的。...另外这个「耗时」还有一种特殊情况,就是这件事本身做起来并不慢,但它需要等待,比如 5 秒钟之后再做这个操作。这种也是 suspend 函数的应用场景。...四、总结 协程就是切线程; 挂起就是可以自动切回来的切线程; 挂起的非阻塞式指的是它能用看起来阻塞的代码写出非阻塞的操作,就这么简单。 参考: 1,Kotlin 的协程用力瞥一眼 - 学不会协程?...很可能因为你看过的教程都是错的 2,Kotlin 协程的挂起好神奇好难懂?今天我把它的皮给扒了 3,到底什么是「非阻塞式」挂起?协程真的更轻量级吗?

    3.3K11

    从 Kotlin 开发者角度看 Java 缺失的特性

    作者 | Nicolas Fränkel 译者 | 明知山 策划 | 李冬梅 近二十年来,Java 一直是我的谋生工具,直到几年前我开始学习 Kotlin。...虽然 Kotlin 也被编译为 JVM 字节码,但有时候我还是不得不写一些  Java 代码。每次写 Java 代码时,我都不禁想,为什么 Java 代码看起来没有 Kotlin 那么好。...Kotlin 就没有给你这种选择:每个属性和局部变量都需要定义为 val 或 var。另外,不能重新给方法参数赋值。 Java 中的 var 关键字完全不同。首先,它只能用于局部变量。...Kotlin 提供了扩展函数来解决同样的问题。 Kotlin 提供了不通过类继承或使用装饰器等设计模式来实现扩展类或接口的能力。这可以通过一种叫作扩展的特殊声明来实现。 ...我只在必要的时候使用 Java,因为 Kotlin 已经成为我的 JVM 首选语言。

    79120

    Kotlin 的 Nothing 详解

    } } 在这个函数里,一个 if 判断,true 就返回,false 就抛异常,这个写法很常见吧?它在 else 的这个分支,是不是就只抛异常而不返回值了?...实际上 Java 和 Kotlin 的任何方法或者说函数,在抛异常的时候都是不返回值的——你都抛异常的还返回啥呀返回?是吧?...这是一种很常用的工具函数的写法,包括 Kotlin 和 Compose 的官方源码里也有这种东西。 那么我们继续来看它的返回值类型:我都不返回了,就没必要还写 String 了吧?那写什么?...} 虽然我找不到 Nothing 的实例,但是这个函数本来就是永远抛异常的,找不到实例也没关系。哎,这不就能用了吗?对吧? 不过,能用归能用,这么写有啥意义啊?是吧?价值在哪?...} 不过一般很少有人这么去用,大部分都是用在我刚才说的抛异常的场景,这是非常常见的一种用法,你写业务可能用不到,但是基础架构团队给全公司写框架或者对外写 SDK 的话,用到它的概率就非常大了。

    34130

    会写「18.dp」只是个入门——Kotlin 的扩展函数和属性(Extension FunctionsProperties)

    为什么?很简单,因为 Integer、Float、Double 这几个类没提供这个方法,所以我们只能用 Math 类的静态方法。...这几个类同样没有提供 pow() 这个函数,但好的是,我们依然可以用看起来像是成员函数的方式来做幂运算。 2f.pow(10) // Kotlin 可以这么写 为什么?...这个函数这么写,它到底是属于谁的呀?属于外部的类还是左边前缀的类?属于谁?这个「属于谁」其实有点模糊的,我需要问再明确点:它是谁的成员函数?当然是外部的类的成员函数了,因为它写在它里面嘛,对吧?...不过我还是要把这个告诉你,因为这样你的知识体系才是完整的。 说到完整啊,每个做 Android 的人都应该把自己的支撑体系扩充一下,让自己的技能树变完整,你才能百毒不侵,工作和面试都不怕。...记不住的把视频多刷几遍,不要怕,我在我的课程里也经常跟我的学员说:你把每节课多刷几遍,别嫌费时间,又不是电视剧,知识密度这么大的课程你多看几遍只赚不亏。

    95910

    为什么说Kotlin的可读性比Java好?

    他是写 Scala 的,有一天他这么跟我说: 我之前一年多时间都是写 Scala 的,现在我看到 Java 代码,就像在看汇编一样。...基于 Kotlin 的抽象程度更接近 Scala,我想写一年多 Kotlin 之后,你也会有类似的感觉。OK,第一点讲到这里。接下来我们来看第二点。...这,就是为什么 Effective Java 里面,建议把所有能用 final 修饰的地方都用 final 修饰的原因。很多人认为,使用 final 是为了避免多线程同步的问题。...当一个东西的优势不是很容易被识别(注意,不容易被识别,不代表这个优势不大,或者不重要,这是两回事),同时又要多付出一些努力的时候,我们写代码的默认设置是不加 final,这就非常合情合理了。...由于篇幅的关系,这些还有剩下的一些机制,这里就不展开讲了。当你写 kotlin 代码的时候,多思考一下,Kotlin 为什么要这样设定,你就会明白,都是有原因的,多数情况下,都是有优势的。

    1.9K50

    什么叫代码的可读性?为什么说Kotlin的可读性比Java好?

    基于Kotlin的抽象程度更接近Scala,我想写一年多Kotlin之后,你也会有类似的感觉。 OK,第一点讲到这里。接下来我们来看第二点。...我之前一篇文章说过,Kotlin的nullsafety是我最喜欢的特性,如果说第二喜欢的特性是什么,那就是关键字。在团队里面,我也一遍一遍的跟同事强调,能用的地方就不要用。...这,就是为什么Effective Java里面,建议把所有能用修饰的地方都用修饰的原因。很多人认为,使用是为了避免多线程同步的问题。...当一个东西的优势不是很容易被识别(注意,不容易被识别,不代表这个优势不大,或者不重要,这是两回事),同时又要多付出一些努力的时候,我们写代码的默认设置是不加,这就非常合情合理了。...由于篇幅的关系,这些还有剩下的一些机制,这里就不展开讲了。当你写kotlin代码的时候,多思考一下,Kotlin为什么要这样设定,你就会明白,都是有原因的,多数情况下,都是有优势的。

    1.2K70

    Gradle基础|自定义插件并上传到JitPack

    插件的作用就是添加我们自己的一些逻辑到项目执行过程中,这个做法在 Gradle 中称其为任务,或者说 Task ,从而对项目进行测试、编译、打包等; 也可以对项目中现有的对象类型添加新的扩展属性、方法等...这些插件一般还要在model中再依赖其他组件,如果我只用代码组件,而不启用这些插件,那还能正常使用吗?...这个目录比较特殊,对于每一个工程而言,有且只能有一个 buildSrc 目录,并且必须位于项目的根目录,如果存在 buildSrc 这个目录,那么 Gradle 在运行时会自动编译并测试这里面的代码,并将其放入构建脚本的类路径中...,根据你自己的写法而定,比如这里我想使用 kotlin 去写插件代码,就使用如下,默认官方推荐了三种目录配置写法: src/main/kotlin src/main/java src/main/groovy...提示找不到这个插件,为什么?我不是在 settings.gradle 中引入了吗? 我们在最上面说过了,buildSrc 本身是一个特殊的项目,Gradle 会自动编译并引入。

    1.1K10

    Kotlin 和 Checked ExceptionKotlin 和 Checked Exception

    对于这个话题我已经思考了很久,觉得有必要分享一下我对此的看法,避免误解的传播,所以我还是决定写一篇文章。...Java 的设计者知道有些地方可以省略,却故意把它做成多余的。不理解语言“可用性”的人,往往盲目地以为简短就是好,多写几个字就是丑陋不优雅,其实不是那样的。...现在我就来讲一下,CE 为什么是很重要的语言特性,然后讲一下为什么 Hejlsberg 对它的批评是站不住脚的。 首先,写 C# 代码时最让我头痛的事情之一,就是 C# 没有 CE。...每调用一个函数(不管是标准库函数,第三方库函数,还是队友写的函数,甚至我自己写的函数),我都会疑惑这个函数是否会抛出异常。...可以看出来,他并不理解这种静态检查是什么规模的问题。要能用静态分析发现 C# 代码里被忽略的异常,你必须进行“全局分析”,也就是说为了知道一个函数是否会抛出异常,你不能只看这个函数。

    71920

    你造吗,null 也能 toString()!

    { return ... } val matchPoint = resolveCurrentMatchPoint() 这时候呢,为了检验我的算法是否符合预期,通常我会在这里把这个 MatchPoint...如果我们写的是 Java 的话,也就只好认命了,可现在写的是 Kotlin 哎。...我把上面的代码改成了下面这样,想想也算是大无畏的革命精神嘛,我不 crash 谁 crash: Log.d(TAG, matchPoint.toString()) 我:大不了就 crash,谁怕谁 Kotlin...最初接触 Kotlin 的时候,确实有点儿不适应这种类型系统,写点儿代码好麻烦啊,怎么处处都得考虑变量是不是为空的问题 —— 虽然我很喜欢这个东西,当年知道 swift 有这样的特性的时候也曾羡慕不已...—— 这时候,大家能体会到为什么 Kotlin 的函数参数都是只读变量了吗?

    3.5K10

    Android 官方怒推的 Jetpack Compose 到底是什么

    这两年的时间 Android 团队在干嘛?在开发这个库,在开发 Compose。一个 UI 框架而已,为什么要花两年来打造呢?...刚才我说过一次,Compose 的渲染机制、布局机制、触摸机制全都是新写的,所以这个 Text() 的底层不是 TextView,也不是任何一个原生控件,而是直接调用了更下层的绘制 API,也就是 Canvas...比如左边这个布局里的 TextView,如果它对应的数据改变了,我要怎么把新的文字更新到它?很简单:findViewById()、setText() 对吧?...这也在一定程度上回答了一个问题: 为什么 Compose 只能用 Kotlin 写,而不能用 Java?因为它用了大量的 Kotlin 特性,而这些特性用 Java 不能简单实现。...那么现在我们再往回拐:传统的 xml 写法和 Compose 的 Kotlin 写法,为什么一个是「命令式」,一个是「声明式」?这个问题其实本身就是错的。

    2.4K40

    正确地使用 Kotlin 的 internal

    那么就让我们来看看怎么解决这个问题吧。 这个问题其实很好解决,不知道为什么之前都没有人发现。 方法就是欺负 Java 语法不行。 比如说我们有这个 Kotlin 的 internal 函数。...方法一 我们可以使用 @JvmName 这个神器。 这个注解可以让 Kotlin 编译器改变生成的函数在字节码里面的名字,但是在代码里面依然可以使用原本的名字。...Kotlin 独占了,因为如果在 jar 里面引用的话,函数名就是 @JvmName 的参数, which Java 根本写不出来,只有 Kotlin 可以用。...我们知道, Kotlin 允许使用 ` ` 把一个不合法的标识符强行合法化,当然本身是合法的也能用。 一般我们都只用于关键字冲突的情形,可你们一定没想到有这种妙用吧。...比如我在我的一个个人项目里的某个文件就用了这种操作。 当然我不是为了 internal ,只是为了好看。

    3.2K31

    你绝对想不到 Kotlin 泛型给反射留下了怎样的坑!

    为什么?...本着息事宁人的态度,类型不匹配我强转下不就得啦: it.get(this@description as out Person) // 错误的!!...遇坑填坑 有坑不填,不是好码农啊。 前面抛出这么个大坑,说实在的,不给出解决方案我都不好意思写这篇文章。 3.1 类型强转方案 谁说类型强转不行了?谁说的??...3.2 Java 反射方案 Kotlin 反射不能用?不用还不行了么,打不起还躲不起吗,什么世道。。...这个故事呢,你说 Kotlin 事儿多也行,说它严谨也行,反正,解决方案咱都有,大不了,大不了我去天桥上贴膜。。什么破代码,不写了! 关注公众号 Kotlin ,获取最新的 Kotlin 动态。

    8.4K21

    Kotlin 泛型详解

    最近一段时间在网上发了一套 Kotlin 的入门视频,涵盖了基础语法、面向对象、高阶函数、DSL、协程等比较有特色的知识点,不过有朋友提出了疑问:这门课为什么不专门讲讲泛型、反射和注解呢?...我最早听到这个问题的时候,反应比较懵逼,因为我居然没有感觉到 Kotlin 的反射、泛型特别是注解有专门学习的必要,因为他们跟 Java 实在是太像了。...不过 numbers 中可以添加 Number 类型的对象,所以我添加个 Integer 可以不呢?可以的: numbers.add(1); 那么我要想添加一堆 Integer 呢?...super E 的用法,这表示元素类型为 E 及其父类,这个通常也叫作逆变。 2.2 Kotlin 的型变 型变包括协变、逆变、不变三种。 下面我们看看 Kotlin 是怎么支持这个特性的。...对于 Foo ,其中 T 是一个具有上界 TUpper 的不型变类型参数,Foo 对于读取值时等价于 Foo 而对于写值时等价于 Foo。

    1.2K20

    我为何早先于你学习并应用Kotlin

    但是,话锋一转,我想问的是,作为 Java or Android 开发技术人员的你,为什么才开始学习 Kotlin ,或者甚至夸张地才了解到 Kotlin 这个单词?...为什么要说简书这个普普通通的 APP 呢?因为:搜索真的很重要!去年的我被一款叫做 Unity3D 的游戏开发软件吸引住而开始打算自学编程应用。...刚开始我也这样认为,后面我发现新语言的新特性让我能用少量代码写出更优雅的程序,我立马下定决心学习 Kotlin ,在学习之前我还搜索了与 JVM 相关的其他语言,包括: Scala 、 Groovy 、...为什么我起步晚但学习 Kotlin 却比有些人早? 是偶然吗?我看未必。...是的,技多不压身,但是你就是不能跑在别人前面,问问我们自己:我擅长什么?我有什么厉害之处?我们为什么不精通某一个方向?何乐而不为啊!

    91030

    Kotlin学习日志(四)函数

    fun Test():Int Kotlin设计师的初衷就是把函数当成一个特殊的变量,既然函数被当作一种特殊的变量,同时每个变量都有变量类型,假如函数存在返回参数,那么自然把返回参数的类型作为该函数的变量类型...} 这个Unit是代表无需返回具体的值,所以Kotlin代码中往往会省略掉,所以你写不写都可以(PS:那你说这么多废话干啥!!!)...= getFourBook("中国四大名著是:","罗贯中写的《三国演义》") } 这一步是没有问题了,加入我要改第四本书的值呢?...这个地方为什么用截图而不是直接贴代码呢,因为我觉得这个引用方式比较酷,还用蓝色标出来了。我们运行一下看看结果吧,不然就是银样镴枪头,中看不中用。 运行效果如下: ?...这个地方不贴代码,因为我希望有人能敲一边,而不是一味的复制和粘贴,那样是没有用的。 偶次数点击效果图如下 ?

    1.8K10
    领券