小编tla*_*ama的帖子

如何在Dart 2中将List <String>更改为List <dynamic>?

我有一个List<String>,我需要List<dynamic>在Dart 2中将其更改为.

首先,我尝试了这段代码,但它不起作用:

var str_list = ["aa", "bb"];

// fails - is not dynamic
// gives List<String> 
List<dynamic> target_list_0 = str_list;
Run Code Online (Sandbox Code Playgroud)

后来,我尝试了这两种方式:

// succeeds - is dynamic
// gives List<dynamic> 
var target_list_1 = [] + str_list;

// succeeds - is dynamic
// gives List<dynamic> 
var target_list_2 = List<dynamic>.from(str_list);
Run Code Online (Sandbox Code Playgroud)

它有效,但我不确定它是解决问题的最佳(或惯用)方法.我想把Dart-2代码写得尽可能干净,你能帮忙吗?

编辑

@matanlurey问清楚这个模式是必要的,以及我如何使用它.

我正在开发类似twitter但更复杂的东西(不仅是#hashtags和@mentions,而是具有内部结构的单词).因此,我对源文本进行了一些修改,然后用空格(或括号)将其拆分为单词,然后逐字逐句检查.如果单词是特殊的,我将字符串更改为地图(包含已解析的信息).更改在列表中就地发生.这就是我需要的地方dynamic.我有这个源代码:

var split_regexp = new RegExp(r"[^\s\(\)]+|[\s\(\)]+");
var body_matches = split_regexp.allMatches(body_part);

var body = [] + body_matches.map(
    (m) => m.group(0)
).toList();

// ... processing …
Run Code Online (Sandbox Code Playgroud)

dart

7
推荐指数
1
解决办法
6934
查看次数

如何在D中的函数中输入by-name参数?

我正在努力将名称传递给一个定义了默认参数值的函数:

import std.stdio;

void main() {

    void foo(int x=1, int y=2, int z=3) {
        writefln("x=%s, y=%s, z=%s", x, y, z);
    }

    foo(10, 20, 30); // ok, prints: x=10, y=20, z=30

    foo(z=30); // Error: undefined identifier 'z'
}
Run Code Online (Sandbox Code Playgroud)

这是一个非常基本的需求.这样的函数可以有10个或更多参数,并且可以使用不同的参数集多次调用.每次列出所有的args是难以忍受的 - 它需要精确的位置知识,甚至可以在我的应用程序的新版本中更改.或者我的应用程序的新版本可以更改默认值,我必须通过我的所有源代码来更改它.

我认为基本的东西必须是像D这样全面的语言.

d

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

如何在julia中打印嵌套的dicts?

如何在julia中打印嵌套的dicts(或其他数据结构)?例如:

xx = Dict(
    "a"=>77, 
    "b"=>55,
    "c"=> Dict(
        44=>"alfa",
        55=>"beta",
        66=>Dict(
            "x"=>999,
            "y"=>888
        )
    )
)
Run Code Online (Sandbox Code Playgroud)

julia

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

如何在 golang 中缓冲 Web 应用程序中的响应?

我想制作一个 hello world Web 应用程序,能够正确捕获模板错误。所以我需要缓冲响应但不知道该怎么做。我已经整理了这段代码。这是在 golang 中缓冲响应的方法吗?

func get_handler(w http.ResponseWriter, r *http.Request) {

    buf := new(bytes.Buffer)
    err := templates.ExecuteTemplate(buf, "hello.html", nil)
    if err != nil {
        fmt.Println(err.Error())
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }
    w.Write([]byte(buf.String()))
}
Run Code Online (Sandbox Code Playgroud)

go

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

标签 统计

d ×1

dart ×1

go ×1

julia ×1