小编Jay*_*ani的帖子

Go:范围或地图返回什么?

Go具有非常简洁的多重返回值范例.但看起来v, ok := map[key]v, k := range m使用相同符号的不同机制.这是一个简单的例子:

func f2() (k, v string) {
    return "Hello", "World"
}

func main(){
    k := f2() // Doesn't work : multiple-value f2() in single-value context

    m := map[string]int{"One": 1}

    // It works
    v, ok := m["One"]

    // How it all work?
    v := m["One"]
    for k := range m {}
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,k := f2()给出错误作为f2返回两个值,而v, ok := m["One"]v := m["One"]- 两个表达式都没有任何错误.为什么这种行为不同?

map range go

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

golang:cgo extern无法正常工作

我正在尝试使用以下示例为golang运行cgo(在go-wiki - > Global Functions中给出):

foo.go 文件:

package gocallback

import "fmt"

/*
#include <stdio.h>
extern void ACFunction();
*/
import "C"

//export AGoFunction
func AGoFunction() {
        fmt.Println("AGoFunction()")
}

func Example() {
        C.ACFunction()
}
Run Code Online (Sandbox Code Playgroud)

foo.c 文件:

#include "_cgo_export.h"
void ACFunction() {
    printf("ACFunction()\n");
    AGoFunction();
}
Run Code Online (Sandbox Code Playgroud)

运行此示例时,我收到以下错误:

# command-line-arguments
/tmp/go-build770916112/command-line-arguments/_obj/foo.cgo2.o: In function    `_cgo_3234419c4c2a_Cfunc_ACFunction':
./foo.go:36: undefined reference to `ACFunction'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我无法追查这一点.为什么ACFunctionundefined?还是我错过了什么?

go version:go go go1.1.2 linux/386

go cgo

3
推荐指数
1
解决办法
2263
查看次数

从Javafx2.2迁移到Javafx8

我正在尝试将Javafx2.2应用程序迁移到Javafx8.我在使用嵌套时遇到以下问题FXML:

javafx.fxml.LoadException: Root hasn't been set.
Use method setRoot() before load.
Run Code Online (Sandbox Code Playgroud)

FXML文件:

<fx:root type="javafx.scene.layout.VBox" 
         xmlns:fx="http://javafx.com/fxml"
         xmlns="http://javafx.com/javafx/8"
         fx:controller="com.ui.TestController">
    <TextField fx:id="textField"/>
    <Button text="Click Me"/>
</fx:root>
Run Code Online (Sandbox Code Playgroud)

码:

FXMLLoader loader = new FXMLLoader();
loader.setResources(bundle);
InputStream in = Main.class.getClassLoader().getResourceAsStream(fxml);
loader.setBuilderFactory(new JavaFXBuilderFactory());
loader.setLocation(Main.class.getResource(fxml));
Node page = null;
try {
    page = (Node) loader.load(in);
} catch (IOException e) {
    logger.error("{}", e);
} finally {
    try {
        in.close();
    } catch (IOException e) {
        logger.error("{}", e);
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要page在另一个节点中设置节点BorderPane.center.它适用于Javafx2.2.我在这里缺少什么?任何帮助,将不胜感激.

fxml javafx-8

3
推荐指数
1
解决办法
2621
查看次数

按钮样式与图像

我想知道如何实现以下按钮样式,其中文本位于JavaFx中的图像下面?

我尝试了很多但都徒劳无功.任何帮助,将不胜感激.

在此输入图像描述

button javafx-2

0
推荐指数
1
解决办法
1859
查看次数

结果失败返回`map_err`

我正在弄清楚为什么返回时以下失败map_err

Compiling playground v0.0.1 (/playground)
error[E0308]: mismatched types
  --> src/main.rs:37:5
   |
36 | fn R() -> Result<i32, MyError> {
   |           -------------------- expected `std::result::Result<i32, MyError>` because of return type
37 |     decode().map_err(|e| Err(MyError {v: "changed".to_string() }))
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `MyError`, found enum `std::result::Result`
   |
   = note: expected enum `std::result::Result<_, MyError>`
              found enum `std::result::Result<_, std::result::Result<_, MyError>>`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0308`.
error: could not compile `playground`.
Run Code Online (Sandbox Code Playgroud)

如果我match …

rust

0
推荐指数
1
解决办法
97
查看次数

标签 统计

go ×2

button ×1

cgo ×1

fxml ×1

javafx-2 ×1

javafx-8 ×1

map ×1

range ×1

rust ×1