小编Set*_*nig的帖子

如何使用Go读/写文件?

我一直在努力学习Go,但我一直难以尝试从普通文件读取和写入.

我可以得到inFile, _ := os.Open(INFILE, 0, 0),但实际上获取文件的内容没有意义,因为read函数将a []byte作为参数.

func (file *File) Read(b []byte) (n int, err Error)
Run Code Online (Sandbox Code Playgroud)

file go

274
推荐指数
8
解决办法
20万
查看次数

Go,go get,go install,本地包和版本控制

我无法理解创建具有本地包的go项目的工作流程.

假设我创建了一个新项目,使用git进行版本控制,它有一个main.go文件和一个tools.go文件,它将在包utils中.所以我有一个目录结构,如下所示:

/myproject/
   main.go
   utils/
     tools.go
Run Code Online (Sandbox Code Playgroud)

main.go看起来像这样:

package main
import "./utils"
func main() {
    utils.DoSomthing()
}
Run Code Online (Sandbox Code Playgroud)

和tools.go看起来像这样:

package utils;
func DoSomething() {
}
Run Code Online (Sandbox Code Playgroud)

一切都在本地工作,使用go buildgo run.但这是在github上托管的,我希望能够让其他人使用go get命令来安装它.因此必须更改本地包导入以使用格式"github.com/user/project/utils",这样可行,除了现在我有两个源代码副本,真正的问题是带有git历史的副本有一个导入,使用下载的副本.因此,如果我正在处理带有git历史记录的副本,那么对tools.go所做的任何更改都将被忽视,因为它将使用下载的副本.

所以我想知道是否有人可以解释在同一个项目中使用go get,版本控制和包导入的正确方法.

git package go

58
推荐指数
3
解决办法
4万
查看次数

Airflow 如何设置 dag_run.conf 的默认值

我正在尝试设置一个 Airflow DAG,它提供可从dag_run.conf. 当使用“Run w/ Config”选项从 webUI 运行 DAG 时,这非常有效。但是,当按计划运行时,dag_run.conf字典不存在,并且任务将失败,例如

jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'key1'
Run Code Online (Sandbox Code Playgroud)

下面是一个示例作业。

是否可以使其dag_run.conf始终包含此处定义的字典params

jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'key1'
Run Code Online (Sandbox Code Playgroud)

我见过的最接近的是For Apache Airflow,如何通过 CLI 手动触发 DAG 时传递参数?,但是他们利用 Jinja 和 if/else - 这需要定义这些默认参数两次。我只想定义它们一次。

airflow

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

java的PriorityQueue的内置迭代器不以任何特定顺序遍历数据结构.为什么?

这直接来自Java Docs:

该类及其迭代器实现了Collection和Iterator接口的所有可选方法.方法iterator()中提供的迭代器不保证以任何特定顺序遍历优先级队列的元素.如果需要有序遍历,请考虑使用Arrays.sort(pq.toArray()).

基本上,我的PriorityQueue工作正常,但是使用自己内置的toString()方法将其打印到屏幕上会让我看到这个异常现象,并且想知道是否有人可以解释为什么它是迭代器提供的(并且使用过)内部)不按自然顺序遍历PriorityQueue?

java priority-queue

11
推荐指数
1
解决办法
5047
查看次数

perl\@转义序列

我有一个perl脚本,其中包含以下内容:

" \"blah\@$string;blah\" "
Run Code Online (Sandbox Code Playgroud)

但我不确定这\@是做什么/应该做什么的.

我试过谷歌搜索' \@'但我似乎找不到任何东西.

perl escaping

8
推荐指数
2
解决办法
2万
查看次数

使用容器/堆来实现优先级队列

在大图中,我正在尝试使用优先级队列来实现Dijkstra的算法.

根据golang-nuts的成员,在Go中执行此操作的惯用方法是使用具有自定义底层数据结构的堆接口.所以我创建了Node.go和PQueue.go,如下所示:

//Node.go
package pqueue

type Node struct {
    row    int
    col    int
    myVal  int
    sumVal int
}

func (n *Node) Init(r, c, mv, sv int) {
    n.row = r
    n.col = c
    n.myVal = mv
    n.sumVal = sv
}

func (n *Node) Equals(o *Node) bool {
    return n.row == o.row && n.col == o.col
}
Run Code Online (Sandbox Code Playgroud)

和PQueue.go:

// PQueue.go
package pqueue

import "container/vector"
import "container/heap"

type PQueue struct {
    data vector.Vector
    size int
}

func (pq *PQueue) Init() {
    heap.Init(pq) …
Run Code Online (Sandbox Code Playgroud)

heap priority-queue go

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

检测正则表达式匹配中标量的精确字符串值

说我有 $foo = "bar.baz"

我想使用标量$ foo来查找包含"bar.baz"(字符串中的任何位置)的字符串,但不是$ foo的正则表达式计算版本.

因此,行:if( $other =~ m/$foo/ ) ... 不起作用,因为$ foo正在被评估为'.' 被评估为任何角色.我怎么阻止它?

regex perl

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

标签 统计

go ×3

perl ×2

priority-queue ×2

airflow ×1

escaping ×1

file ×1

git ×1

heap ×1

java ×1

package ×1

regex ×1