我具有以下接口和类型(所有接口和类型都可以更改)
interface Base {
type: string;
}
interface A extends Base {
type: "A";
field: string;
}
interface B extends Base {
type: "B";
query: string;
}
interface C extends Base {
type: "C";
equal: number;
}
type BaseExtensions = A | B | C;
interface BaseWrapper<R extends BaseExtensions> {
idType: string;
base: R;
}
interface And {
type: "AND";
rules: Array<BaseWrapper<any>>;
}
interface Or {
type: "OR";
rules: Array<BaseWrapper<any>>;
}
type Rule<R extends BaseExtensions> = BaseWrapper<R> | And | …Run Code Online (Sandbox Code Playgroud) 我试图在python 2.7中构建一个5x5网格的游戏板,表示为2维列表.我尝试将其编写为board = [["O"]*cols]*rows(cols和rows已经声明为5)但是当我尝试编辑索引处的值时,它会更改整行.例如
cols = 5
rows = 5
board = [["O"]*cols]*rows
Run Code Online (Sandbox Code Playgroud)
这打印:
[['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O']]
Run Code Online (Sandbox Code Playgroud)
现在当我尝试更改索引的值时:
board[1][1] = "X"
Run Code Online (Sandbox Code Playgroud)
它打印:
[['O', 'X', 'O', 'O', 'O'], ['O', 'X', 'O', 'O', 'O'], ['O', 'X', 'O', 'O', 'O'], ['O', 'X', 'O', 'O', 'O'], ['O', 'X', 'O', 'O', 'O']]
Run Code Online (Sandbox Code Playgroud)
我只想改变第1行第1行的值.
我也尝试过以下方法:
board = []
for i in xrange(5): …Run Code Online (Sandbox Code Playgroud) 我正在为我的学生编写代码检查员(我是导师).该项目是他们编写一个使用print关键字打印特定字符串的函数.我希望能够通过存储和匹配列表(或类似的东西)来测试他们打印的内容.基本设置是:
def checker():
#run user code
do some other things like save and check error messages etc
Run Code Online (Sandbox Code Playgroud)
现在,在这个checker函数的某个地方,我希望能够跟踪打印的内容.在Javascript中,我能够做到这样的事情:
var logs = [];
var hold_logger = console.log //saves the console.log so nothing gets ruined
console.log = function (x) { logs.push(x) };
Run Code Online (Sandbox Code Playgroud)
现在当我运行学生代码而不是打印到控制台时,它会将值推送到logs.我想在Python 2.7中实现同样的功能.
我想知道Java如何实现String.equals()方法以及这种操作的运行时复杂性.是检查每个单独的字符(导致O(N),其中N是长度)还是有某种有效的方法来比较两个会给出O(1)?
编辑:当我看到另一个问题和答案时,我想知道Java是否会自动进行某种实习,例如在String初始化时或在第一次调用compareTo或等于允许几乎所有调用时兑现一些值是O(1).如果我正确理解答案是必须积极实施String并且Java在幕后不做任何事情.
我有一个iOS应用程序,需要登录到使用Django的现有站点,并需要CSRF令牌登录.我无法改变这一点.
我当前的尝试是将GET发送到服务器,该服务器将返回CSRF,然后将该cookie作为字符串抓取并将其附加到POST请求.
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:[[NSURL alloc] initWithString:@"http://example.com"]];
[req setHTTPShouldHandleCookies:YES];
[NSURLConnection sendAsynchronousRequest:req queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
self.csrf_cookie = [[(NSHTTPURLResponse *)response allHeaderFields] valueForKey:@"Set-Cookie"];
[self postLoginCredentialsEmail:@"user@example.com" password:@"password"];
}];
- (void)postLoginCredentialsEmail:(NSString *)email password:(NSString *)password {
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:[[NSURL alloc] initWithString:@"http://example.com/login"]];
[req addValue:(self.csrf_cookie != nil ? self.csrf_cookie : @"poo") forHTTPHeaderField:@"X-CSRFToken"];
[req setHTTPMethod:@"POST"];
NSString *postData = [NSString stringWithFormat:@"password=%@&;email=%@", password, email];
[req setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-type"];
[req setHTTPBody:[postData dataUsingEncoding:NSUTF8StringEncoding]];
[NSURLConnection sendAsynchronousRequest:req queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, …Run Code Online (Sandbox Code Playgroud) 我对 Scala 比较陌生,但我想我了解它的类型系统和并行集合,但我无法理解这个错误:
我有一个功能
def myFun(a : Seq[MyType], b : OtherType) : Seq[MyType] = {
val parA = a.par
def update(q : OtherType)(x : MyType) : MyType = x.updated(q)
parA.map(update(b))
Run Code Online (Sandbox Code Playgroud)
我收到一个错误提示
Error:(63, 18) type mismatch;
found : scala.collection.parallel.ParSeq[MyType]
required: Seq[MyType]
parA.map(update(b))
^
Run Code Online (Sandbox Code Playgroud)
如果ParSeq是的子类型,Seq那么为什么这不起作用?
(在我写这篇文章时,我意识到要修复它,我可以.seq对结果调用方法,但为什么我必须这样做?IDE 告诉我的 .toSeq 之间有什么区别,而 .toSeq.seq似乎已经起作用了)
当使用 时,我偶然发现了打字稿导入中的奇怪行为@mapbox/mapbox-sdk。我已经安装了@mapbox/mapbox-sdk和@types/mapbox__mapbox-sdk。代码本身可以工作。问题严格来说是打字。
首先我尝试了以下导入:
import { MapiRequest } from '@mapbox/mapbox-sdk/lib/classes/mapi-request';
import Geocoding from '@mapbox/mapbox-sdk/services/geocoding';
import Matrix from '@mapbox/mapbox-sdk/services/matrix';
Run Code Online (Sandbox Code Playgroud)
当我这样做时,这 3 个导入出现 3 个类似的错误
Could not find a declaration file for module '@mapbox/mapbox-sdk/lib/classes/mapi-request'. '<path>/node_modules/@mapbox/mapbox-sdk/lib/classes/mapi-request.js' implicitly has an 'any' type.
Try `npm install @types/mapbox__mapbox-sdk` if it exists or add a new declaration (.d.ts) file containing `declare module '@mapbox/mapbox-sdk/lib/classes/mapi-request';`ts(7016)
Run Code Online (Sandbox Code Playgroud)
接下来我尝试导入基础 Mapbox 库。
Could not find a declaration file for module '@mapbox/mapbox-sdk/lib/classes/mapi-request'. '<path>/node_modules/@mapbox/mapbox-sdk/lib/classes/mapi-request.js' implicitly has an 'any' type.
Try …Run Code Online (Sandbox Code Playgroud) python ×2
python-2.7 ×2
typescript ×2
append ×1
cookies ×1
django ×1
django-csrf ×1
ios ×1
java ×1
list ×1
logging ×1
mapbox ×1
python-2.x ×1
scala ×1
string ×1