kotlin 从数组中获取随机字符串

2024-05-19

刚接触 kotlin,有不少问题和解答,大部分是 Java 方面的。在遵循文档并针对大量 SO 进行验证之后问题和答案 https://stackoverflow.com/questions/6726963/random-string-from-string-array-listAndroid Studio 在函数中抱怨以下内容。函数是

fun getRandomQuote() {
    val randomValue = Random.nextInt(quotes.size)
    //return quotes[randomValue]
    return quotes.get(randomValue)
}

quotes是一个数组(字符串)

val quotes = arrayOf("Alert today – Alive tomorrow.",...)

它说对于

quotes.get(randomValue)

它应该是一个Unit但发现String。 randomValue 应该是由以下定义的整数docs https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.random/next-int.html使用 nextInt 除非我误解了文档。我没有看到这个问题。我只是想从数组中随机返回一个字符串。我认为工作室可能又出现了误报,所以我清理了该项目,但它在构建时停止了。任何人都知道我做错了什么。


正如其他答案所说,您的函数缺少返回类型,因此默认情况下它是Unit。将返回类型指定为String修复错误。

我想提出另一种更简洁的方法来使用默认随机数生成器从数组中选择随机元素:只需使用random https://kotlinlang.org/docs/reference/collection-elements.html#random-element集合和数组上可用的扩展函数。

    val colors = arrayOf("red", "blue", "yellow")
    val randomColor = colors.random()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kotlin 从数组中获取随机字符串 的相关文章

  • Kotlin 中 with 和 run 的区别

    Do with and run具有相同的功能 只是语法不同 或者之间是否存在重大差异with and run 哪个是正确的方法 adapter run notifyDataSetChanged if activityDetails isEm
  • 为什么我无法使用 HttpUrlConnection 上传第一个文件块?

    在我的项目中 我应该从一台服务器逐块下载文件 并将每个块立即上传到另一台服务器 我有一个应该下载的文件的 URL 我们就这样称呼它吧downloadUrl 因此 这就是我逐块下载文件的方式 val chunkSize 1024 1024 B
  • 使用 Google 语音服务查询支持的语言不适用于 Android 13

    我使用以下命令查询语音服务支持的语言RecognizerIntent ACTION GET LANGUAGE DETAILS action val intent Intent RecognizerIntent ACTION GET LANG
  • Kotlin 扩展函数 - 覆盖现有方法

    是否可以做类似的事情 Converts all of the characters in the string to upper case param str the string to be converted to uppercase
  • 从 Go Slice 中选择一个随机值

    情况 我有一些值 需要从中随机选择一个值 然后我想将它与固定字符串连接起来 到目前为止 这是我的代码 func main create the reasons slice and append reasons to it reasons m
  • 为什么升级到jetpack compose 1.0.0-beta01后没有隐式导入kotlin.collections?

    升级到 jetpack compose 1 0 0 beta01 后 我尝试使用 kotlin collections 中的 arrayListOf listOf 但它们似乎没有隐式导入 您的问题可能与以下内容有关科特林版本您正在使用 我想
  • 如何在 Jetpack Compose 中提供相对大小

    我有一个框布局 我想相对于父框的大小来布局子视图 这可以在 SwiftUI 中使用 Geometry Reader 来实现 如何在 Jetpack Compose 中实现类似的功能 您可以使用BoxWithConstraints代替Box
  • Kotlin 合约不适用于扩展函数中的空检查

    我正在尝试编写一个返回的扩展函数true如果该值不是null或 0 并使用合约向编译器保证如果我返回true 该值非空 但是 它似乎不适用于智能投射 当我尝试将值传递给采用不可空值的函数时 它仍然无法编译Long 我尝试编译这段代码 但它不
  • Kotlin - 访问派生类型中的伴生对象成员[重复]

    这个问题在这里已经有答案了 给出以下代码 open class Foo companion object fun fez class Bar Foo companion object fun baz fez baz 可以打电话fez 我可以
  • 如何获取常量内存中的统计数据

    我有一个函数 它会创建一些随机的数值结果 我知道 结果将是 a 小 a b 约 50 范围内的整数a b 我想创建一个执行上述函数 1000000 次的函数 并计算每个结果出现的频率 该函数使用随机生成器来生成结果 问题是 我不知道如何在常
  • TypeConverters 无法弄清楚如何将此字段保存到数据库中

    我在实现 Room 的类型转换器时遇到错误 错误 无法弄清楚如何将此字段保存到数据库中 您可以考虑为其添加类型转换器 private java util List
  • 如何在 Kotlin 中模拟和验证 Lambda 表达式?

    在 Kotlin 和 Java 8 中 我们可以使用 Lambda 表达式来删除样板回调接口 例如 data class Profile val name String interface ProfileCallback fun onSuc
  • 为什么 CheckBox 检查不能以编程方式与 Kotlin 一起使用?

    我想这个问题以前可能有人问过 但这个问题也发生在我身上 所以我在这里再次询问 看看我们能否找到解决方案 所以基本上问题是以编程方式检查复选框不与 Kotlin 代码一起工作 为了解释一下 我正在分享我的代码和问题的屏幕截图 filterCo
  • 无法解析以下类的超类型

    I have android app in kotlin这给了我这个错误 错误 无法解析以下类的超类型 请确保类路径中具有所需的依赖项 com google firebase auth FirebaseAuth 类 未解析的超类型 com
  • C++11 随机数

    我需要生成随机数 但范围尽可能广泛 至少 64 位 我不在乎分布是否完美 所以std rand 会起作用 但它只返回一个int 据我所知 c 11 具有一些随机数生成功能 可以给出任何大小的数字 但使用起来非常复杂 有人可以发布一个简单的示
  • rand() 的实现

    我正在用 C 编写一些嵌入式代码 需要使用 rand 函数 不幸的是 控制器的库不支持 rand 我需要一个快速的简单实现 但更重要的是空间开销很小 可以产生相对高质量的随机数 有谁知道使用哪种算法或示例代码 编辑 它用于图像处理 因此 相
  • Kotlin:在片段内打开新活动

    使用按钮时如何在片段内打开新的活动 我试过这个 override fun onViewCreated view View savedInstanceState Bundle super onViewCreated view savedIns
  • androidx.navigation.fragment.NavHostFragment 无法从 xml 文件访问

    我正在尝试使用带有底部导航视图的 androidx 导航 因此 当我在 xml 文件中放置带有 android name androidx navigation fragment NavHostFragment 的片段时 它会给我一个错误
  • 使用 JPA Criteria API 进行分页的总行数

    我正在系统中为实体实现 高级搜索 功能 以便用户可以使用该实体的属性上的多个条件 eq ne gt lt 等 来搜索该实体 我正在使用 JPA 的 Criteria API 动态生成 Criteria 查询 然后使用setFirstResu
  • 我可以有效地从 HashSet 中随机采样吗?

    我有一个std collections HashSet 我想采样并删除一个均匀随机的元素 目前 我正在做的是使用随机抽样索引rand gen range 然后迭代HashSet到该索引来获取元素 然后我删除选定的元素 这可行 但效率不高 有

随机推荐