我的最终目标是验证输入字段.输入可以是字母或数字.
我收到的错误是:
json.Unmarshal undefined (type interface {} has no field or method Unmarshal)
尝试将json字节切片转换为通用接口{}类型.我正在阅读文档,encoding/json
并举例说明这是有效的.是什么赋予了?
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
)
func main() {
var json interface{}
data, _ := ioutil.ReadFile("testMusic.json")
json.Unmarshal(data, &json)
m := json.(map[string]interface{})
fmt.Printf("%+v", m)
}
Run Code Online (Sandbox Code Playgroud) 当在weightDelta
函数上运行hlint时,一直在暗示Eta减少.我读了另一个相关的Eta reduce 问题,但我似乎无法将理解转移到这个案例中.
module StackQuestion where
import qualified Data.Vector as V
type Weights = V.Vector Double
type LearningRate = Double
weightDelta :: LearningRate -> Double -> Double -> Weights -> Weights
weightDelta n r y ws = V.map update ws
where update w = diff * n * w
diff = r - y
Run Code Online (Sandbox Code Playgroud)
我试图"减少"它以指向免费语法的每一个改变都会破坏它.哪里有变化,是否有任何直觉或伎俩可以避免将来减少eta减少的建议?
我想要定义一个常量值:
const var *url.URL = url.Parse("http://yahoo.com/")
Run Code Online (Sandbox Code Playgroud)
我知道我必须完全定义变量及其类型.即我不能只使用":="速记.
但是,evaluate函数的返回值返回常量和错误.
var, _ := url.Parse("http://yahoo.com/")
Run Code Online (Sandbox Code Playgroud)
现在如何声明var是常量并在这种情况下丢弃错误?
我需要存储和检索interface {}值的字节表示.为了澄清我不是试图将基础值存储到切片中,无论它们的大小如何,而是寻找存储指向所述值的指针的方法.
我不能去的原因type MyType interface{}; var arr []MyType
是因为我在这个数组中打包了非统一数量的其他字节.
为了实现这一点,我正在查看反射和不安全的包,我看到UnsafeAddr
返回指针的方法.我可以使用store指针然后将其解码回我的接口{}值吗?
我看到的另一个函数是InterfaceData
返回一个2字节的数组表示,但有没有办法再将它转回一个接口值?
我的高级目标是这样的:
// store the pointer to dataIn in the slice b
func putPtr(b []byte, dataIn interface{}) { ... }
// return the pointed to interface value from within b
func getInter(b []byte) interface{} { ... }
Run Code Online (Sandbox Code Playgroud) my @file = grep { (/\.EW/i || /\.NS/i || /\.UD/i) }readdir(DIR);
Run Code Online (Sandbox Code Playgroud)
我试图理解正则表达式以及grep和readdir如何相互关联.
使用"for in"循环设置方法时,会设置正确的方法名称,但每个函数调用中使用的变量都会被最后一个set属性破坏.
示例代码
function colorLog() {
var color = {
graph: '#88A825',
node: '#35203B',
link: '#911146',
error: '#AC2930',
info: 'black'
};
var logger = {};
for(var k in color) {
logger[k] = function(msg) {
console.log(color[k]);
console.log("%c" + msg, "color:" + color[k] + ";font-weight:bold;");
}
}
return logger;
}
var log = colorLog();
log.graph("Graph Says");
log.node("Node Says");
log.link("Link Says");
log.error("Error Says");
log.info("Info Says");
Run Code Online (Sandbox Code Playgroud)
产量
black
Graph Says
black
Node Says
black
Link Says
black
Error Says
black
Info Says
Run Code Online (Sandbox Code Playgroud)
关于范围规则,我不理解什么?