我是android的新手,为小学的孩子们写了一个学习应用程序.该应用程序用于练习简单的计算(加法和减法).
到目前为止,我已经完成了UI设计并编写了一个简单的概念验证实现来演示应用程序的基本用法.
其中一项活动(添加123和456)的设计如下所示:
|-----------------------------|
| |c| 1 |c| 2 |c| 3 |
| |
| 4 5 6 |
| -------------------- |
| | r1 | | r2 | | r3 | |
| |
| |
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 0 |
| cancel | check |
|-----------------------------|
Run Code Online (Sandbox Code Playgroud)
numblock中的数字(0-9)是可以拖放到进位字段(|c|)或结果字段(|r1|等)的视图.已经丢弃到进位或结果字段的值也可以移动(再次通过拖放)移动到另一个进位或结果字段.
将有多种练习模式,例如:
|-----------------------------|
| 1 + 9 = |r1|r2| |
| …Run Code Online (Sandbox Code Playgroud) 我正在使用Android和Kotlin,我希望有一个注释来检查常量String参数(对于函数或构造函数)是否与某个模式(正则表达式)匹配.我读到了关于模式注释的内容,但我不确定它是否适用于我的问题以及它是否适用于Android.
所以,当我有这样的代码
fun foo(@MatchesPattern("a*b") bar: String) = println(bar)
Run Code Online (Sandbox Code Playgroud)
然后
foo("aaaab")
Run Code Online (Sandbox Code Playgroud)
应该编译得很好,但是
foo("bb")
Run Code Online (Sandbox Code Playgroud)
不应该.
这可能,最好没有任何第三方库吗?如果是,我将如何实现这样的注释?(对不起,我不熟悉编写我自己的自定义注释)
我希望将带有连字符分隔音节的单词作为参数传递,但是一个单词不应超过3个音节(这意味着每个单词最多2个连字符).我知道我也可以使用默认的params实现这一点,但我认为注释将是一种更优雅的方式来实现这一点.
我有一个 Javascript 对象,其中包含其他对象。每个包含的对象都有一个name属性。
我现在想做的是将这些名称属性连接到一个字符串。'and'但是,我希望这些字符串在最后一个字符串之前用逗号分隔。
为了更好地理解,我想要迭代的对象如下所示:
var objects = {
o1: {name: 'name1'},
o2: {name: 'name2'},
o3: {name: 'name3'}
};
Run Code Online (Sandbox Code Playgroud)
现在我最终想要的字符串是:'Concatenation of name1, name2 and name3'
到目前为止我尝试过使用angular.forEach:
var myString = 'Concatenation of ';
angular.forEach(objects, function(o) {
myString += o.name + ', ';
}
Run Code Online (Sandbox Code Playgroud)
不难注意到,我的字符串将变成'Concatenation of name1, name2, name3, '.
所以真正的问题是我如何检查我在对象中的哪个位置,并通过连接'and'而不是逗号或根本不使用逗号来做出适当的反应。我怎样才能做到这一点?
我目前的代码具有与以下类似的机制
fun main() {
val listOfLists = listOf(listOf("1234", "1", "42"), listOf("hello", "there"))
val (lengths: List<List<Int>>, resultingListsOfLists: List<List<String>?>) =
listOfLists
.map {
val lengths = it.map { it.count() }
Pair(
lengths,
if (lengths.sum() > 5) {
// doing some transformation here in my original code,
// but for the sake of keeping it simple, just return `it`
it
} else {
null
}
)
}
.let { mapped ->
println(mapped)
Pair(mapped.map { it.first }, mapped.map { it.second })
}
println(lengths)
println(resultingListsOfLists) …Run Code Online (Sandbox Code Playgroud) android ×2
kotlin ×2
angularjs ×1
annotations ×1
idioms ×1
iteration ×1
java ×1
javascript ×1
string ×1