我正在使用 datadog 来查看我的微服务指标。当我转到 APM 选项卡时,我可以看到我创建的跨度及其相应的标签已正确到达服务器。问题是,如果我单击标签“齿轮”将其转换为构面,而操作正确完成时,我无法查询该值,当我将其作为列添加到指标中时,我也看不到任何值。下面的例子:
我可以单击该齿轮并将“Headers-Received”转换为字符串值,DD 根本没有错误,但我无法查询或查看任何正在注册的值。但我确实可以看到到达我的服务器的请求的每个跟踪中的值。
这里发生了什么?
我想以与在此处完成的方式类似的方式验证openapi规范:http://bigstickcarpet.com/swagger-parser/www/index.html 但不同之处在于我使用GO来编写工具代码并且只使用CLI .
我想用这个:
https://github.com/go-openapi/validate
但主要问题是文档几乎不存在.我来到这里寻找以前可能使用过这个库的人的帮助,并且可以给我一个MINIMAL示例,发送一个包含类似规范的文件,并让这个库以与在线Swagger验证器类似的方式抛出所有错误或警告.
我已经可以读取文件并对其中的字段进行一些手动验证,但当然这不是我需要做的,而只是一个样本.
另外,作为第二个问题,我想在他们的GitHub回购中发布同样的问题,但我明白了:
我不知道如何"审查"这些指导方针,所以我可以发表我的问题.
func validate_spec(spec string) []validator_error {
// RULES HERE. Now I am hardcoding since this is just a dummy app. On the real app we will need to use goapenapi plus a schema validator
var errors []validator_error
name_regex, _ := regexp.Compile("^[a-zA-Z]+[ ][a-zA-Z]+")
// Validate _.name field
if ( ! gjson.Get(spec, "name").Exists() ) {
n := validator_error{Path: "_.name", Message: "Does not exist!"}
errors = append(errors,n)
}
if gjson.Get(spec, "name").Exists() …Run Code Online (Sandbox Code Playgroud) 如何将函数数组传递给我的主函数 Validate?我无法获得正确的语法
package main
import (
"fmt"
)
func upper(input string) string {
return "hola"
}
func Validate(spec string, validations []func(string) string) {
for err, exec := range validations {
fmt.Println(exec(spec))
}
}
func main() {
Validate("Hola", []func{upper})
}
Run Code Online (Sandbox Code Playgroud)
问候!
我使用perl来匹配bash脚本中的正则表达式的密码.
在测试正则表达式的密码时,我遇到了这个问题:
这有效:
perl -e 'if ( "Bomba\@2071" =~ /^(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8,}$/ ) { print 1; } '
Run Code Online (Sandbox Code Playgroud)
虽然这永远不匹配:
perl -e 'if ( "Bomba@2071" =~ /^(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8,}$/ ) { print 1; } '
Run Code Online (Sandbox Code Playgroud)
你可以注意到,它有效,因为我逃脱了@符号.我从来没有在其他编程语言中看到过这样的东西,经过一个多小时的坚持,我发现原因只是偶然.
所以,我的问题是,这是怎么回事?为什么我需要逃避像@这样的奇怪角色?
我正在我的 iOS 应用程序中复制 Youtube 视频。我面临的问题是当视频播放时,它会在 iOS 的本机视频播放器中播放。
这对我来说没问题,但我想禁用本机播放器中的控件,以便用户无法跳过视频。
这可能吗?
这是我的代码:
func setUpUI() {
let webConfiguration = WKWebViewConfiguration()
webConfiguration.allowsInlineMediaPlayback = true
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
webView.backgroundColor = .red
self.backgroundColor = .white
webView.translatesAutoresizingMaskIntoConstraints = false
self.contentView.addSubview(mainContainer)
mainContainer.addSubview(lineSeparator)
mainContainer.addSubview(bottomLineSeparator)
mainContainer.addSubview(videoIcon)
mainContainer.addSubview(watchItAll)
mainContainer.addSubview(videoContainer)
videoContainer.addSubview(videoTitleContainer)
videoContainer.addSubview(webView)
videoTitleContainer.addSubview(videoTitleLabel)
lineSeparator.backgroundColor = .lightGreyBkgrnd
lineSeparator.layer.borderColor = UIColor.lightGreyBkgrnd.cgColor
lineSeparator.layer.borderWidth = 3
videoContainer.layer.borderColor = UIColor.dimGray.cgColor
videoContainer.layer.borderWidth = 2
bottomLineSeparator.backgroundColor = .lightGreyBkgrnd
bottomLineSeparator.layer.borderColor = UIColor.lightGreyBkgrnd.cgColor
bottomLineSeparator.layer.borderWidth = 3
self.videoTitleLabel.font = UIFont.preferredFont(forTextStyle: .headline)
self.videoTitleLabel.textColor = UIColor.tuftsBlue
videoPlayerSuperView.translatesAutoresizingMaskIntoConstraints = …Run Code Online (Sandbox Code Playgroud) 我有这个表定义:
CREATE TABLE Usuarios
(
CI INT PRIMARY KEY,
primer_nombre varchar(25) NOT NULL CHECK (primer_nombre MATCHES '^[a-zA-Z]$' ),
segundo_nombre varchar(25),
primer_apellido varchar(25) NOT NULL,
segundo_apellido varchar(25),
grado INT CHECK ( grado > 0 AND grado < 8),
fecha_nacimiento DATE NOT NULL,
nota INT CHECK ( nota > 0 AND nota < 13),
email varchar(80),
hace_proyecto boolean,
tipo varchar(20) CHECK (tipo IN ('Admin', 'Docente', 'Alumno')),
encriptacion_hash varchar(250),
encriptacion_sal varchar(250),
baja boolean
);
Run Code Online (Sandbox Code Playgroud)
这个插入语句:
INSERT INTO Usuarios (CI, primer_nombre,segundo_nombre,primer_apellido,segundo_apellido,grado,fecha_nacimiento,nota,email,hace_proyecto,tipo,encriptacion_hash,encriptacion_sal,baja)
VALUES (
999999, …Run Code Online (Sandbox Code Playgroud) 我在Python中有一个替换,如下所示:
re.sub('','?',"Man")
Run Code Online (Sandbox Code Playgroud)
唯一的问题是输出是:
?M?a?n?
Run Code Online (Sandbox Code Playgroud)
但我想避免第一次替换,所以它看起来像这样:
M?a?n?
Run Code Online (Sandbox Code Playgroud)
如何避免只匹配行的开头但是保持匹配其他所有内容?
我在Go中没有太多经验,但基本上我想在使用它之后在屏幕上打印我的正则表达式.我在Google上找不到任何东西.这似乎很容易做,但我尝试了几件事而没有其他工作.
var swagger_regex = regexp.MustCompile(`[0-9][.][0-9]`)
.... some code here ....
fmt.Println("Your '_.swagger' attribute does not match " + string(swagger_regex))
Run Code Online (Sandbox Code Playgroud) 我有以下脚本:
#!/bin/bash
echo $FAV_FRUIT
echo $FAV_HERO
Run Code Online (Sandbox Code Playgroud)
以及以下 txt 文件:
FAV_FRUIT='watermelon'
FAV_HERO='batman'
Run Code Online (Sandbox Code Playgroud)
我试图理解为什么这不起作用:
$(cat environment.txt | tr '\n' ' ' ) ./printEnv.sh
bash: FAV_FRUIT='watermelon' FAV_HERO='batman' : command not found
Run Code Online (Sandbox Code Playgroud)
但如果我真的这样做:
FAV_FRUIT='watermelon' FAV_HERO='batman' ./printEnv.sh
Run Code Online (Sandbox Code Playgroud)
然后我得到正确的输出。
如何修复我的命令以使其成功?
我在理解 C# 中的 HOF 时遇到了一些问题。我希望我的 DoSomething 函数接收一个函数作为参数,该函数返回void并接收两个字符串。我无法将第一个泛型参数设置为 void 作为编译器抱怨。这给了我一个错误。
在 C# 中执行此操作的正确语法是什么?
using System.IO;
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello, World!");
DoSomething((v1, v2) => Console.WriteLine(v1, v2));
}
private static void DoSomething(Func<string,string,string> f){
f("1", "2");
}
}
Run Code Online (Sandbox Code Playgroud)