小编Del*_*ace的帖子

调用具有多个管道参数的模板

在Go模板中,有时将正确数据传递到正确模板的方式对我来说感觉很尴尬.使用管道参数调用模板看起来就像调用只有一个参数的函数.

假设我有一个关于Gophers的Gophers网站.它有一个主页主模板和一个实用程序模板来打印Gophers列表.

http://play.golang.org/p/Jivy_WPh16

输出:

*The great GopherBook*    (logged in as Dewey)

    [Most popular]  
        >> Huey
        >> Dewey
        >> Louie

    [Most active]   
        >> Huey
        >> Louie

    [Most recent]   
        >> Louie
Run Code Online (Sandbox Code Playgroud)

现在我想在子模板中添加一些上下文:在列表中以不同的方式格式化名称"Dewey",因为它是当前登录用户的名称.但我无法直接传递名称,因为只有一个可能的"点"参数管道!我能做什么?

  • 显然我可以将子模板代码复制粘贴到主模板中(我不想这样做,因为它降低了对子模板的所有兴趣).
  • 或者我可以使用访问器来处理某些全局变量(我也不想).
  • 或者我可以为每个模板参数列表创建一个新的特定结构类型(不是很好).

templates go go-templates

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

使用哪一个:托管与非托管哈希算法

在常规的C#应用​​程序中,哪个类用于散列:xxxManagedxxx(即SHA1Managedvs SHA1)以及为什么?

c# hash unmanaged managed

17
推荐指数
2
解决办法
6562
查看次数

Pyephem算法参考

我之前从未使用过pyephem,而且我不是卫星定位专家.我想利用pyephem来计算使用TLE的卫星位置.我必须做一些非常简单的事情,比如说:

tle=["ISS (ZARYA)","1 25544U 98067A   03097.78853147  .00021906  00000-0  28403-3 0  8652","2 25544  51.6361  13.7980 0004256  35.6671  59.2566 15.58778559250029"]
iss = ephem.readtle(*tle)
observer = ephem.Observer()
observer.lon, observer.lat = ('-84.39733', '33.775867')     
observer.date = ephem.Date('2002/4/23 10:10:00.000')
iss.compute(observer)
print iss.alt, iss.az, iss.range
Run Code Online (Sandbox Code Playgroud)

-40:06:46.3 199:08:24.3 8834968.0

这三个变量提供卫星在水平参考系统中的位置.我不清楚pyephem如何计算这个值.我已阅读参考指南:http: //rhodesmill.org/pyephem/radec

阅读文件时,似乎pyephem应用了岁差和章动,但在文件的最后两行中它说:

"请注意,最后两组坐标中没有任何进动,但仅限于第一组.这意味着只有"天体测量"位置对应于星形图谱中的线条.其他位置被称为"最新的"坐标",是在观测当天进行天极和天体赤道方向测量的.

地球岁差是否适用于az和alt?

此外,我想知道什么样的模型pyephem用于岁差和章动(我真的需要一些参考).有一个链接到Xephem和libastro,但我找不到任何有关算法的信息.你有什么建议吗?

非常感谢你!

algorithm satellite pyephem

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

如何在Go程序中使用pprof

如何在Go程序中使用pprof?

有一个名为net/http/pprof的Go包,但我无法使用它.

该文件说go tool pprof http://localhost:6060/debug/pprof/heap,这是行不通的.

而且,以下_是什么意思?

import _ "net/http/pprof"

go google-perftools pprof

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

Google BigQuery - 超出速率限制

当尝试将数据插入 GoogleBigQuery 时,我们收到以下错误:

table.write:超出速率限制:该表的表更新操作过多。有关详细信息,请参阅https://cloud.google.com/bigquery/troubleshooting-errors(错误代码:rateLimitExceeded)

根据文档,我可能超出了以下其中一项

我如何知道我的申请超出了哪些标准?

我已经在网络上探索过其他解决方案,但没有一个有效。

google-bigquery

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

Go 模板中的请求上下文

我想在 Go HTML 模板中编写这样一个条件片段:

  {{if isUserAdmin}}
     <a href"/admin/nuke">Go to the big red nuclear button</a>
  {{end}}
Run Code Online (Sandbox Code Playgroud)

但是,这不可能直接实现,因为模板不知道触发其执行的请求,因此无法确定用户是否是管理员。

有没有一些正常的方法可以实现这一目标?

我提前指出:

  • 我不想使用管道来处理此特定数据(请参阅有关此问题的其他问题
  • 我承认只有处理程序/控制器应该处理逻辑,而视图应该只进行渲染。但条件{{if isUserAdmin}}本身并不是逻辑,它是利用控制器已经计算出的布尔值的必要构造。
  • Funcs方法可以提供帮助,但目前还不够精简,无法轻松定义特定方法isUserAdmin()

templates go

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

简单添加时间并比较GO

嗨,我似乎无法理解在Go中进行时间算术的正确方法.

我有一个时间"对象"后来初始化为Now()并存储.

   insertTime time.Time
Run Code Online (Sandbox Code Playgroud)

之后,我需要查看该项目是否超过15分钟.

我该怎么做呢?我是否需要创建15分钟的持续时间将其添加到当前时间并进行比较?如果是这样,我该怎么做?

go

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

AES-CTR在Go中加密并在CryptoJS中解密

我在使用CryptoJS解密使用Go lang加密的文本时遇到问题.

这是Go代码:https: //play.golang.org/p/xCbl48T_iN

package main

import (
    "crypto/aes"
    "crypto/cipher"
    "encoding/base64"
    "fmt"
)

func main() {
    key := []byte("1234567890123456")
    plaintext := []byte("text can be a random lenght")

    block, err := aes.NewCipher(key)
    if err != nil {
        panic(err)
    }

    // The IV needs to be unique, but not secure. Therefore it's common to
    // include it at the beginning of the ciphertext.
    // BTW (only for test purpose) I don't include it

    ciphertext := make([]byte, len(plaintext))

    iv := []byte{'\x0f','\x0f','\x0f','\x0f','\x0f','\x0f','\x0f','\x0f','\x0f','\x0f','\x0f','\x0f','\x0f','\x0f','\x0f','\x0f'} …
Run Code Online (Sandbox Code Playgroud)

javascript encryption cryptography go cryptojs

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