小编Ren*_*ato的帖子

如何在Pony中将值强制转换为String?

我正在努力学习Pony,并且由于显而易见的原因,我想要做的第一件事就是打印值.

但是,它似乎对大多数事情都不起作用,例如:

env.out.print(2 + 2)
Run Code Online (Sandbox Code Playgroud)

给出错误:

Could not infer literal type, no valid types found
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

let four: U32 = 2 + 2
env.out.print(four)
Run Code Online (Sandbox Code Playgroud)

但是这给出了一个更加丑陋的错误,说我需要一些属于它的子类型ByteSeq.很好,但我怎么得到其中一个?

ponylang

6
推荐指数
1
解决办法
655
查看次数

如何在 Java9 中指定 FileWatcher 修饰符?

在 Java 8 中,java.nio.file.WatchEvent.Modifier没有任何实现,正如它自己的 Javadocs 所说:This release does not define any standard modifiers.

Java 9 似乎也没有提供。

但是在 Java 8 中,我仍然可以使用非标准的,com.sun.nio.file.SensitivityWatchEventModifier.HIGH这样我的文件观察器就会响应更快(没有这个,需要几秒钟才能收到通知,这是不可接受的)。

在 Java 9 中,这会中断,因为这是一个内部 API。

有没有办法在 Java 9 中提供修饰符,以便在不使用不受支持的 API 的情况下工作?如果不是,为什么他们认为不为此提供任何类型的配置是个好主意?

java java-9

6
推荐指数
0
解决办法
725
查看次数

如何将 Zig 字符串文字传递给 C

Zig 字符串文字是指向以 null 结尾的字节数组的单项指针,非常适合用作 C 的char *字符串!

然而,当我尝试使用 Zig 中的这个简单的 C 函数时:

int count_bytes(const char *str) {
  int count = 0;
  while(str[count]) {
    count++;
  }
  return count;
}
Run Code Online (Sandbox Code Playgroud)

齐格呼叫者:

const std = @import("std");
const c = @cImport({
    @cInclude("add.c");
});
const testing = std.testing;

test "should be able to count string length" {
    try testing.expectEqual(0, c.count_bytes(""));
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

./src/main.zig:16:46: error: expected type '[*c]u8', found '*const [0:0]u8'
    try testing.expectEqual(0, c.count_bytes(""));
                                             ^
./src/main.zig:16:46: note: cast discards const qualifier
    try …
Run Code Online (Sandbox Code Playgroud)

c zig

6
推荐指数
1
解决办法
2747
查看次数

如何使用Futon并将couchapp推送到使用vhost的CouchDB?

我有一个托管一个小网站的CouchDB服务器.出于这个原因,我在CouchDB配置中设置了一个vhost部分,以便请求:

domain.com

将被"重写"给

domain.com/site/_design/app/_rewrite

...在解释这个职位和我想,这样我就可以保持"漂亮"的网址.这很好!但是,执行此操作后,我无法在同一主机名上访问Futon.这不是那么不方便,但我发现我甚至不能推动我的couchapp了.当我使用一个"在云端"生活的服务器(原谅行话)时,我没有其他主机名可用于推送或访问管理员资料.我能做些什么来解决这个问题吗?我尝试了几种重写规则,包括

"从到": "../../*"

但是这不起作用(对"/ _all_dbs"的请求最终在"site/_all_dbs"中......并且在"to"字符串中再添加一个../会导致CouchApp抱怨它是一个不安全的重写规则.

任何提示赞赏!

couchdb couchapp couchdb-futon

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

如何将Ceylon Sequential或数组转换为具有适当类型的通用元组?

我有一个泛型函数需要创建一个元组来调用一个函数,其参数我不知道它的类型.

像这样的东西(array在这个例子中除外是由一些外部代码创建的,所以我不能直接应用该函数):

Result apply<Result, Where>(
    Anything[] array, 
    Callable<Result, Where> fun)
        given Where satisfies Anything[] => nothing;
Run Code Online (Sandbox Code Playgroud)

是否有一种类型安全的方法来实现此方法并使用给定的参数调用函数?

ceylon

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

如何在Trait中调用时正确使用闭包委托

我有一个Groovy特性需要提供一个配置Closure作为库方法调用的参数(它是HttpBuilder,但它应该无关紧要).

为了重现这个问题,我创建了以下简单示例:

trait T {
    def doIt() {
        return {
            n = 1
        }
    }
}

class Delegate {
    int n
}

class Tish implements T {
    def go() {
        def closure = doIt()
        def d = new Delegate()
        closure.delegate = d
        closure()
        assert d.n == 1
    }
}

new Tish().go()
Run Code Online (Sandbox Code Playgroud)

这应该没有错误地运行,因为当运行trait中的doIt()方法返回的闭包时T,它的委托被设置为可以将n变量设置为1的东西....

但是,这不起作用,我收到此错误:

 groovy.lang.MissingPropertyException: No such property: n for class: Tish
Run Code Online (Sandbox Code Playgroud)

如果我创建T一个类并让它Tish扩展它,那么它的工作原理!

我尝试改变Closure的委托策略,但这没有帮助.

这是一个Groovy错误还是有办法解决这个问题?

groovy

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

如何在宏中使用非公共函数?

我有一个变得太大的宏,所以我想将部分代码提取到一个函数中。当我这样做时,我遇到了问题,因为在调用站点扩展宏时该函数不在范围内:

#[macro_use]
mod macros {
    fn hi() {
        println!("Hello")
    }

    #[macro_export]
    macro_rules! say_hi {
        () => {
            hi();
        };
    }
}

fn main() {
    say_hi!();
}
Run Code Online (Sandbox Code Playgroud)

这不编译:

#[macro_use]
mod macros {
    fn hi() {
        println!("Hello")
    }

    #[macro_export]
    macro_rules! say_hi {
        () => {
            hi();
        };
    }
}

fn main() {
    say_hi!();
}
Run Code Online (Sandbox Code Playgroud)

我尝试hi公开(尽管我不想公开)但由于它不是在调用者的上下文中导入的,因此无论如何它都不起作用。

我怎么解决这个问题?

rust

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

如何让 IntelliJ 使用清单的自动模块名称?

我有一个 jar,其清单包含该Automatic-Module-Name条目(因此 Java 9 不会使用 jar 文件名自动命名它,而是使用此清单条目给出的名称)。

然后,我在模块文件中“require”这个模块,并且在编译和运行应用程序时它工作正常......但 IntelliJ 似乎无法识别它,因为它标记了模块文件中的“require”指令和“import” " 在 Java 类中将其用作错误!

是否有已知的解决方法,或者我是否必须配置一些东西以使 IntelliJ“知道”这个特定的 jar 代表具有特定名称的模块?

intellij-idea java-9

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

如何在 Swift 中实现 FlutterPlugin 的方法处理程序?

我正在尝试使用 Flutter 编写移动应用程序。不幸的是,我需要实现一个 Flutter 插件才能调用一些原生 API。

Objective-C 对我来说太陌生了,所以我真的更喜欢使用 Swift(我也不太了解,但它与 Kotlin 足够接近,我觉得它很熟悉)来创建插件。

我得到了 Flutter 的插件框架设置,但现在我正在尝试实现方法处理函数:

public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult)
Run Code Online (Sandbox Code Playgroud)

我尝试使用的本机函数具有以下签名(使用 gomobile 生成):

FOUNDATION_EXPORT MobileapiDatabase* MobileapiReadDatabase(
  NSString* filePath, NSString* password, NSError** error);
Run Code Online (Sandbox Code Playgroud)

我不明白几件事:

  1. 如何使用result对象返回错误?
  2. 如何报告方法未执行?
  3. 如何使用本机函数的error对象?

我只能找到 Objective-C 示例,而没有通过谷歌搜索找到的单个 Swift 示例(我发现的唯一示例没有处理错误或其他任何内容)。

这是我到目前为止所得到的:

public func handle(_ call: FlutterMethodCall, 
    result: @escaping FlutterResult) {
  switch call.method {
  case "getDb":
    let args = call.arguments as! [String]
    if args.count == 2 {
        let error = NSError() // ERROR in …
Run Code Online (Sandbox Code Playgroud)

swift flutter

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

为 Pony 数组实现 map 函数

我一直在玩 Pony 数组,以便更好地理解 Pony,并且想为任何数组编写映射函数。

我说的是现在大多数语言都具有的用于转换集合元素的标准映射函数,如 Clojure 中所示:

(map #(+ 1 %) [1 2 3]) ; => [2 3 4]
Run Code Online (Sandbox Code Playgroud)

但我希望它实际修改给定的数组,而不是返回新的数组。

到目前为止,我当前的尝试由于功能而遇到了许多错误:

// array is "iso" so I can give it to another actor and change it
let my_array: Array[U64] iso = [1; 2; 3; 4]

// other actor tries to recover arrays as "box" just to call pairs() on it
let a = recover box my_array end // ERROR: can't recover to this capability
for (i, item) in a.pairs() do …
Run Code Online (Sandbox Code Playgroud)

ponylang

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

标签 统计

java-9 ×2

ponylang ×2

c ×1

ceylon ×1

couchapp ×1

couchdb ×1

couchdb-futon ×1

flutter ×1

groovy ×1

intellij-idea ×1

java ×1

rust ×1

swift ×1

zig ×1