小编Rob*_*b N的帖子

比较中文unicode字符串,当多个代码点是同一字符时?

我正在编写一些处理汉字的Java代码,但得到了一些意想不到的结果-应该相等的字符串却不是。这是令人反感的字符之一,表示“六个”(拼音:liù):?。该字符可以用以下两个代码点之一表示:

块中的F9D1:CJK兼容表意文字
516D块中:CJK统一表意文字

维基百科上有关于这些字符范围的页面,关于兼容性表意文字的简短部分确实提到了一些重复项,但列表中省略了该特定字符。

所以我想知道:

  1. 是否在某处有重复的unicode字符列表,以便在尝试比较字符串之前可以对其进行转换?
  2. 在处理CJK字符时这是正常现象吗,还是我做错了其他事?

unicode normalization cjk unicode-normalization

5
推荐指数
1
解决办法
890
查看次数

Oracle的Java OS for Mac OS X是否有com.apple.eawt.CocoaComponent或类似的东西?

Apple的Java,在我的机器上的第6版,有一个类com.apple.eawt.CocoaComponent用于将AWT/Swing应用程序连接到Cocoa组件.示例用法:在Java应用程序中显示AudioUnit的UI(这是一个Cocoa视图).我想使用Java 7,但我找不到这个类.有人知道它在哪里吗?或者,如果有替代方案?

java macos cocoa

5
推荐指数
1
解决办法
989
查看次数

如何在SBT中定义另一个编译范围?

默认情况下,SBT下编译源src/mainsrc/teststarget/scala-[version]/classestarget/scala-[version]/test-classes分别.我想定义另一个名为core的组,我可以将其放入src/core/java或者src/core/scala将其编译为单独的类路径.我该怎么做呢?

我的动机:我想拥有单独的类文件组,因为我想在开发期间重新编译和重新加载新的应用程序代码,而无需重新启动正在运行的应用程序的JVM进程.因此核心类将在应用程序启动时加载,并且它们将使用自定义类加载器从src/main加载其他所有内容.后面的类将是可重新加载的.我需要这样做,因为我正在编写一个通过JNI加载软件乐器的音乐程序,这需要很长时间才能加载.在开发过程中重新启动应用程序浪费了太多时间.

我主要需要分离类文件.如果我正在制作罐子,我想要myapp-core.jar和myapp-main.jar,但这并不重要,因为这比开发产品更重要.

第一次尝试:

val Core = config("core")
...
classDirectory in Core <<= crossTarget(t => file(t.getAbsolutePath + "core-classes"))
Run Code Online (Sandbox Code Playgroud)

给出了这个错误:

Reference to undefined setting: 
{.}/*:cross-target from {.}/core:class-directory
    Did you mean *:cross-target ?
Run Code Online (Sandbox Code Playgroud)

我现在就去看看范围...

sbt

5
推荐指数
1
解决办法
1387
查看次数

Scala反射:什么是奇怪的名字,比如$ read和$ iw在reified表达式中做什么?

以下是我的Scala提示中的一些片段.我导入反射API并尝试重新表达一些表达式,如此处的文档中所述.

scala> import scala.reflect.runtime.{universe => ru}
scala> val str = "Duck I says."

scala> ru.showRaw(ru.reify(println(2)))
res40: String = Expr(Apply(Select(Select(This(newTypeName("scala")), 
    newTermName("Predef")), newTermName("println")), List(Literal(Constant(2)))))

scala> ru.showRaw(ru.reify(str.length))    
res41: String = Expr(Apply(Select(Select(Select(Select(Select(Ident($line4), 
    newTermName("$read")), newTermName("$iw")), newTermName("$iw")), 
    newTermName("str")), newTermName("length")), List()))
Run Code Online (Sandbox Code Playgroud)

我不希望看到这些符号$line4,$read以及$iw在第二个.他们是什么,他们为什么在那里?

reflection scala

5
推荐指数
1
解决办法
267
查看次数

如何从 Swift 不安全指针获取原始整数位模式?

UnsafePointer您可以从整数构造一个,例如:

let ptr = UnsafePointer<Void>(bitPattern: 123)
Run Code Online (Sandbox Code Playgroud)

但是如何从指针返回整数位模式(在本例中为 123)呢?

你为什么要这样做?

(添加是为了回应一些评论,这些评论表明我没有正确使用指针。)

这不是您通常会做的事情,并且上面的指针实际上并不是指向任何东西的指针。如果程序取消引用它,它就会崩溃。

一些低级 C API 用于void *引用某些任意数据。它是泛型类型的 C 版本。例如,想象一下 C 语言中的堆栈数据结构,具有如下 API

Stack *create_stack();
void stack_push(Stack *stack, void *element);
void *stack_pop(Stack *stack);
Run Code Online (Sandbox Code Playgroud)

通常您会将指针传递给堆分配的数据,但假设您只需要一个 64 位整数的堆栈,并且您知道系统上的指针是 64 位。您可以将整数直接存储在堆栈中,并避免堆分配......

Stack *myStack = create_stack();
long elt = 123;
stack_push(myStack, (void*)elt);
...
elt = (long)stack_pop(myStack);
Run Code Online (Sandbox Code Playgroud)

我正在处理这样的 API,但更复杂(对于多边形镶嵌)。

swift

5
推荐指数
2
解决办法
901
查看次数

如何在Swift中使用静态库和模块映射文件?

我正在尝试在我的Swift项目中包含一个第三方静态库。我有这两个文件,还有一些。

GoogleConversionTrackingSDK / ACTReporter.h GoogleConversionTrackingSDK / libGoogleConversionTracking.a

我将.a文件添加到目标的“链接框架和库”部分。然后module.map,我在项目中创建了一个文件,如下所示:

module GoogleConversionTracking {
    header "../../Libs/GoogleConversionTrackingSDK/ACTReporter.h"    
    export *
}
Run Code Online (Sandbox Code Playgroud)

在Swift文件中,我现在可以引用它:

import GoogleConversionTracking
Run Code Online (Sandbox Code Playgroud)

但是在链接时出现错误:

ld:-lGoogleConversionTracking找不到库
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
注意:-lGoogleConversionTracking找不到库

您如何解决这个问题?我不希望使用桥接头,而是尽可能使用这些模块定义文件。

module swift module-map xcode9

5
推荐指数
1
解决办法
1万
查看次数

React useState hook 如何处理可变对象

假设我的组件有一个状态,它是一组选定的 ID。Javascript 有一个Set类型,所以我试试这个:

let [selectedIDs, setSelectedIDs] = useState(new Set());
Run Code Online (Sandbox Code Playgroud)

JavascriptSet本身是可变的,所以我很困惑。

function toggleSelectedID(id) {
    let set = selectedIDs;
    if (set.has(id)) { set.delete(id) }
    else { set.add(id) }
    // ???
    setSelectedIDs(set);
}
Run Code Online (Sandbox Code Playgroud)

如果Set对象不可变,我将Set使用添加或删除的元素创建一个新元素,并将该新元素传递SetsetSelectedIDs,更改此时的状态。

但是对于 mutable Set,如果我们???在线路上返回会发生什么?React 是否会处于糟糕的状态,因为我“进入”了它的状态并在没有正式告诉它的情况下对其进行了变异setSelectedIDs

reactjs react-hooks

5
推荐指数
1
解决办法
4553
查看次数

SwiftUI 堆栈布局,什么是“最不灵活的孩子”?

我正在观看 WWDC 2019 演讲Building Custom Views with SwiftUI。大约 14:50,他描述了布局的算法,他说“我们将空间分成 3 个相等的部分,并根据最不灵活的孩子的大小提出其中之一”。

在此处输入图片说明

父母(the HStack)如何知道哪个孩子是“最不灵活”的?

到目前为止,SwiftUI 中布局算法的解释对我来说已经很清楚了——父视图向子视图提出一个大小,子视图以他们想要的大小进行响应。在这种情况下,听起来像是向孩子们建议尺寸之前咨询了每个孩子的其他属性。但是这个属性是什么,你如何从代码中控制它?

layout swiftui

5
推荐指数
0
解决办法
116
查看次数

SwiftUI 自定义对齐方式将视图推得比父视图更宽

我从这个开始。一些带有两个滑块的用户界面。

在此输入图像描述

由这段代码定义:

struct ContentView: View {
    @State private var num1: Double = 0.5
    @State private var num2: Double = 0.5
    let blueGreen = Color(red: 0.2, green: 0.6, blue: 0.6)
    var body: some View {
        VStack {
            Circle().fill(blueGreen).border(Color.blue, width: 1.0).padding(4.0)
            VStack {
                HStack {
                    Text("Value:")
                    Slider(value: $num1, in: 0...1)
                }
                HStack {
                    Text("Opacity:")
                    Slider(value: $num2, in: 0...1)
                }
            }
            Spacer()
        }.border(Color.green, width: 1.0).padding()
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望“值:”和“不透明度:”标签在其后缘上对齐,使滑块对齐且宽度相同。我听说自定义对齐可以像这样对齐视图,即不是同级的视图。

所以我添加了自定义对齐方式:

extension HorizontalAlignment {
    private enum MyAlignment : AlignmentID {
        static func defaultValue(in d: ViewDimensions) …
Run Code Online (Sandbox Code Playgroud)

alignment swiftui

5
推荐指数
1
解决办法
1513
查看次数

如何让 SwiftUI List/OutlineGroup 懒惰地用于像文件系统这样的大树?

这是ListSwiftUI 中分层的简单演示。我正在 macOS Big Sur 上对其进行测试,但与其他 UI 工具包中的类似树组件不同,它会立即询问其所有子项。所以我不能将它用于文件系统浏览器之类的东西。

有没有办法让它变得懒惰,以便它只要求children何时展开 UI 元素?

class Thing: Identifiable {
    let id: UUID
    let depth: Int
    let name: String
    init(_ name: String, depth: Int = 0) {
        self.id = UUID()
        self.name = name
        self.depth = depth
    }
    /// Lazy computed property
    var children: [Thing]? {
        if depth >= 5 { return nil }
        if _children == nil {
            print("Computing children property, name=\(name), depth=\(depth)")
            _children = (1...5).map { n in
                Thing("\(name).\(n)", depth:depth+1) …
Run Code Online (Sandbox Code Playgroud)

macos swiftui swiftui-list swiftui-outlinegroup

5
推荐指数
1
解决办法
317
查看次数