在Perl中,当一个人想要对字符串进行连续解析时,可以这样做,我的$ string ="a 1#";
while () {
if ( $string =~ /\G\s+/gc ) {
print "whitespace\n";
}
elsif ( $string =~ /\G[0-9]+/gim ) {
print "integer\n";
}
elsif ( $string =~ /\G\w+/gim ) {
print "word\n";
}
else {
print "done\n";
last;
}
}
Run Code Online (Sandbox Code Playgroud)
它产生以下输出:
whitespace
word
whitespace
integer
whitespace
done
Run Code Online (Sandbox Code Playgroud)
在JavaScript(以及许多其他正则表达式)中,没有\G模式,也没有任何好的替代品.
所以我提出了一个非常简单的解决方案,符合我的目的.
<!-- language: lang-js -->
//*************************************************
// pattmatch - Makes the PAT pattern in ST from POS
// notice the "^" use …Run Code Online (Sandbox Code Playgroud) 尽管 Internet 上的许多教程、视频和书籍都显示baseline edit. delete constraint和cycle chain mode 按钮(x,ab和chain按钮)位于布局编辑器中所选组件下方,我在更新的Android Studio 3.4中看不到它们。这怎么可能?我只能使用上下文菜单执行这些操作。
我的项目在Android Studio 中。它在Windows 7 中有大约 35,000 行。我的环境更新了。我使用Kotlin而不是Java,但这并不重要。我的电脑内存很大。
Waiting until last debugger command completes在手机中调试我的应用程序时,我阅读了互联网上有关该消息的所有材料。
对我来说,调试器以正常速度工作,或者完全卡住(挂起),或者有时非常慢。
我的应用程序中有线程,但很多时候这个问题发生在任何线程之外。只是简单的代码!
我已将其作为错误发布在Google Issue Tracker和JetBrains 中,包括dump file和idea.log文件。Google 已将优先级P3和严重性标记为S3(低级别)。JetBrains已经回答了我,我制作了许多转储和屏幕截图。他们声称问题只能是谷歌的。JetBrains 的定位已经过去了太多时间,但今天 (Out/2)来自 JetBrains 的Andrei Kuznetsov给了我一个建议(下面的项目f)
无法解决我的问题的可能解决方法:
a)擦除所有观察变量。一点点改善。
b)擦除旧断点。这不够。
c)执行Invalidate Caches and Restart
d)取消签Enable ToString object view入Settings, Build,Execution and Deployment …
Android Studio 4.2.2计算局部变量和全局变量,但在内部函数内部时不计算参数函数。
在之前的版本之前,这一切都工作得很好。
fun a(p:param) {
fun b(){
var v = p+1 // Here
}
}
Run Code Online (Sandbox Code Playgroud)
假设尝试评估带有p注释的行中的
参数// HereAlt F8
评估窗口中的消息是
Cannot find the local variable 'p' with type
Run Code Online (Sandbox Code Playgroud)
这很麻烦,因为它迫使您将参数复制为每个例程中的局部变量,以便在调试器中可见。
变量 p = p
有人注意到这一点吗?有什么解决方法吗?
请注意,变量窗口显示带有前缀的参数,但它在评估$窗口中也不起作用。
我已在 JetBrains 中发布了此问题。
我没有找到如何在Kotlin中声明具有预定义大小的数组而不对其进行初始化。
还行吧:
lateinit var v:Array<Int>
Run Code Online (Sandbox Code Playgroud)
但我猜想不能在数组类型中指定大小。
如果需要指定尺寸。必须做的事:
var v2:Array<Int> = Array<Int>(2){5}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,向量的所有元素都等于 5
下面是一个包含类和数组的示例:
data class But(
val fufo: Int=0,
val tp: Int = 1
)
typealias ArBut = Array<But>
data class CArray (
var arrayC: ArBut = ArBut(2){But()}
)
val a = CArray(arrayOf(But(2,2),But(5,4),But(3,3)))
println(a.arrayC[2])
Run Code Online (Sandbox Code Playgroud)
有用!有趣的是,初始化不是类型的一部分,您可以将任意大小的数组放入类中,而无需进行边界检查。如果尺寸是类型规格的一部分,情况会有所不同。
现在是一个例子,使用矩阵。请注意,语法有点复杂。
data class CMatr (
val matrC: Array<ArBut> = Array<ArBut>(2){ArBut(0){But()}}
)
val m = CMatr(arrayOf( arrayOf(But(2,2),But(5,4)),
arrayOf(But(-2,2),But(3,4)), arrayOf(But(1,1),But(5,3)) ))
println(m.matrC[2][1]) // Also works!
Run Code Online (Sandbox Code Playgroud)
是否不可能将大小放入数组类型规范中,或者我遗漏了一些东西?