看来Typescript无法推断出一个变量不是,null
或者undefined
该变量是否存在的检查是在另一个函数中完成的。这是一个例子。
(我在打开--strictNullChecks的情况下使用Typescript。)
const login = (email: string) => {
console.log(email);
}
const handleButtonClick = (email?: string) => {
const error = validate(email);
if (error) {
return;
}
return login(email);
}
const validate = (email?: string) => {
if (!email) {
return 'There was an error'
}
}
Run Code Online (Sandbox Code Playgroud)
Typescript抱怨handleButtonClick
您无法login
使用可能未定义的电子邮件进行呼叫。但是,我们确保email
在validate
调用中定义了它。
Typescript是否有可能解决这个问题?
我正在使用colorama模块,并且希望能够在与颜色对应的变量上调用Fore,例如“ GREEN”。我希望能够做到:
from colorama import Fore
color = 'GREEN'
print(Fore. + color)
Run Code Online (Sandbox Code Playgroud)
我希望它仅运行print(Fore.GREEN),但我不能,因为它存在语法错误。有什么办法吗?
我有一个简单的项目,我在其中创建了自定义异常处理。有趣的是,当我编译这个项目时,它给了我一个错误。
Error creating bean with name 'handlerExceptionResolver' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerExceptionResolver]: Factory method 'handlerExceptionResolver' threw exception; nested exception is java.lang.IllegalStateException: Ambiguous @ExceptionHandler method mapped for [class java.lang.Exception]: {public final org.springframework.http.ResponseEntity com.winwinit.rest.microservices.restfulwebservices.Exception.CustomizedEntityExceptionResponse.handleAllUserException(java.lang.Exception,org.springframework.web.context.request.WebRequest), public final org.springframework.http.ResponseEntity com.winwinit.rest.microservices.restfulwebservices.Exception.CustomizedEntityExceptionResponse.handleAllException(java.lang.Exception,org.springframework.web.context.request.WebRequest)}
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:627) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
Run Code Online (Sandbox Code Playgroud)
package com.winwinit.rest.microservices.restfulwebservices.Exception;
import java.util.Date;
import org.omg.CORBA.portable.UnknownException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
import com.winwinit.rest.microservices.restfulwebservices.User.UserNotFoundException;
@ControllerAdvice
@RestController
public class …
Run Code Online (Sandbox Code Playgroud) 我正在使用rails find_by_sql查询来查找重复的条目,但是我很难删除它们,因为该查询返回的ID为nil的数组。
LogEntry.find_by_sql("SELECT date, athlete_id, count(*) as qty FROM log_entries GROUP BY date, athlete_id HAVING count(*)> 1")
Run Code Online (Sandbox Code Playgroud)
这将返回以下数组:
[#<LogEntry id: nil, date: "2016-06-12", athlete_id: 49>, #<LogEntry id: nil, date: "2015-09-05", athlete_id: nil>, #<LogEntry id: nil, date: "2015-09-06", athlete_id: nil>, #<LogEntry id: nil, date: "2019-05-02", athlete_id: nil>]
Run Code Online (Sandbox Code Playgroud)
当我尝试添加时,.each(&:destroy)
它无法破坏它,因为您可以看到ID列为nil。我不明白的是这怎么可能?这些条目应该能够在没有ID的表中存在。我的SQL查询有问题吗?
谢谢!
我正在使用 onSnapshot 在 Vue 中监听实时更新。我可以看到数据正在从 onSnapshot 加载,但它没有在 DOM 中更新。这可能只是一个非常愚蠢的错误,我只编程了大约一个多月,我就是不明白一些事情,而且我的谷歌搜索技巧让我失望。浏览器显示“No State Listed”,而不是来自 DB 和 console.log 的实际值。
这是我的 .Vue 文件中的片段。
<div>
<span class="grey--text">State:</span>
<span class="grey--text">{{ state }}</span>
</div>
export default {
components: { VoterRegistration },
data() {
return {
state: "No State Listed"
};
},
methods: {},
created() {
auth.onAuthStateChanged(user => {
if (user) {
db.collection("users")
.doc(user.uid)
.onSnapshot({ includeMetadataChanges: true }, function(doc) {
console.log(doc.data()); // shows all the data I want
this.state = doc.data().state;
console.log(this.state); //this shows correct value in firestore db …
Run Code Online (Sandbox Code Playgroud) 我正在使用 d3.js 尝试映射 csv 数据文件的坐标,该文件包含订单 ID、订单发货地址的纬度和经度以及订单花费的金额。我尝试过将它们线性地绘制出来并尝试使用对数刻度,但绘图点似乎仍然倾斜。我试图让它看起来像美国地图,它有点相似,但地图似乎扭曲/倾斜。我确保将经度设置为 x 轴,将纬度设置为 y 轴。圆圈的半径与订单花费的金额有关。我想知道它是否与使用的比例有关,但这是我第一次尝试弄乱 d3,所以任何帮助/建议将不胜感激!
var outerWidth = 500;
var outerHeight = 250;
var margin = { left: -50, top: 0, right: -50, bottom: 0 };
var xColumn = "longitude";
var yColumn = "latitude";
var rColumn = "total";
var dollarPerPixel = 10;
var innerWidth = outerWidth - margin.left - margin.right;
var innerHeight = outerHeight - margin.top - margin.bottom;
var svg = d3.select("body").append("svg")
.attr("width", outerWidth)
.attr("height", outerHeight);
var g = svg.append("g")
.attr("transform", "translate(" + margin.left …
Run Code Online (Sandbox Code Playgroud) 我正在阅读有关列表操作的一些技巧,其中包含以下内容:
Run Code Online (Sandbox Code Playgroud)zipRev xs ys = foldr f id xs snd (ys,[]) where f x k c = k (\((y:ys),r) -> c (ys,(x,y):r))
我们在这里可以看到,我们有两个连续的叠放在一起。发生这种情况时,他们通常可以“取消”,如下所示:
Run Code Online (Sandbox Code Playgroud)zipRev xs ys = snd (foldr f (ys,[]) xs) where f x (y:ys,r) = (ys,(x,y):r)
我不明白您如何“取消”堆叠的延续以从顶部的代码块到达底部的代码块。您寻找进行这种转换的方式是什么,为什么会起作用?
我刚刚学习了 python 中的字符串编码,在稍微摆弄了一下之后,我对空字符串 ('') 的大小在 utf 8 和 ascii 中为 0 但在 utf 16 中为 2 感到困惑?怎么会?
print(len(''.encode('utf16'))) # is 2
print(len(''.encode('utf8'))) # is 0
Run Code Online (Sandbox Code Playgroud)
我想问题的很大一部分是我不明白 utf 16 是如何工作的。我不明白为什么用 utf 16 编码“垃圾邮件”会是 10 个字节长,而不是 8 个字节(每个字符 2 个字节(16 位))。我假设 utf 16 中需要 2 个字节作为任何字符串的默认填充或其他内容?
*编辑
我对 UTF 8 或 UTF 16 的工作原理以及存储每个单独字符的不同之处并不感到困惑。我很困惑如何将缺少任何字符(空字符串)存储在 UTF 16 中的 2 个字节中,但在 UTF 8 中存储为 0 字节。(而不是两者都存储为 1 字节或 0)
该链接没有提供我的问题的答案。
我知道callq
指令的作用;在这个答案中有描述。指令应该有一个参数,它应该是被调用函数的地址。
但是,在反汇编目标文件时,我看到以下行显示了一条callq
具有两个值而不是一个参数的指令:
1e: e8 00 00 00 00 callq 23 <main+0x19>
Run Code Online (Sandbox Code Playgroud)
我假设这23
是返回地址,<main+0x19>
是要调用的函数的地址。但是,被调用的函数并不位于 address main+0x19
。
什么是这两个值的含义23
,并main+0x19
在拆卸的显示callq
指令?
原始 C 代码:
#include <stdio.h>
void fun(int a)
{
}
int main()
{
int a = 1234;
fun(a);
}
Run Code Online (Sandbox Code Playgroud)
objdump -D main.o main.asm 反汇编代码:
0000000000000000 <fun>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 89 7d fc mov %edi,-0x4(%rbp)
7: 90 nop
8: 5d pop …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在对象数组上使用.map()进行简单除法。但是,当零除以零时将返回NaN。如何检查此计算并返回数字0而不是NaN?
mounted() {
console.log(this.dataOverview);
let newData = this.dataOverview.map((data) => {
return {
conversationSource: data.conversationSource,
Id: data.Id,
answerableConversations: data.conversationCount,
interactiveConversations: data.interactive,
leads: data.sent,
interactiveLeadConversations: ((data.sent / data.interactive) * 100).toFixed(0)
}
})
this.convertedData = newData;
console.log(this.dataOverview);
}
Run Code Online (Sandbox Code Playgroud)
使用此方法,当data.sent和data.interactive均为零时,interactiveLeadConversations返回NaN。
javascript ×3
python ×2
vue.js ×2
arrays ×1
assembly ×1
coordinates ×1
d3.js ×1
disassembly ×1
dom ×1
exception ×1
firebase ×1
fold ×1
haskell ×1
java ×1
linux ×1
object-files ×1
postgresql ×1
python-3.x ×1
ruby ×1
spring ×1
typescript ×1
utf ×1
utf-16 ×1
utf-8 ×1
x86-64 ×1