我是一个非常新的程序员,并且了解到我们希望最大程度地减少代码冗余,因此在我们进行更新时,我们可以进行尽可能少的更改,并最大程度地减少错误。
所以我有一个Student类,我想重载构造函数,所以如果我进行反向链接,它就是这样。
public class Student
{
string name;
int Id;
public Student()
{
}
public Student(string name)
{
this.name = name;
}
public Student(string name, int Id) :this(name)
{
this.Id = Id;
Run Code Online (Sandbox Code Playgroud)
但这显然是不好的,因为出于某种原因我们希望所有代码都在一个构造函数中?易于阅读?
public Student() : this(null, 0)
{ }
public Student(string name) : this(name, 0)
{ }
public Student(string name, int Id)
{
this.name = name;
this.Id = Id;
}
Run Code Online (Sandbox Code Playgroud)
如果我进行前向链接,那么如果我们添加一个新的字段(例如字符串major)会怎样?如果我进行正向链接,则会使用添加的字段创建一个新的重载构造函数。但是现在我必须更改所有其他构造函数以调用新的构造函数。如果我进行反向链接,则只需创建一个新的构造函数并调用先前的重载构造函数即可。
public Student(string name, int Id, string major):this(name, Id)
{
this.major=major;
}
Run Code Online (Sandbox Code Playgroud)
这似乎更好地遵循了OOP,但是我的教科书中的所有示例都显示了正向链接,并且没有说为什么不应该使用反向链接。
如果我使用命名/可选参数,则更加简单。
public Student(string name = null, …Run Code Online (Sandbox Code Playgroud) 以下行创建一个命名ValueTuple:
var tuple = (a:1, b:2, c:3, d:4, e:5, f:6);
Run Code Online (Sandbox Code Playgroud)
值类型无法有效传递.是否C#7提供了创建该Tuple类型的命名元组的方法?
一个简单的例子:
a <- quantile(1:10, 0.1)
a
Run Code Online (Sandbox Code Playgroud)
输出:
10%
1.9
Run Code Online (Sandbox Code Playgroud)
使用a指定命名数组的值:
b = c(index=0, value=a)
b
Run Code Online (Sandbox Code Playgroud)
输出:
index value.10%
0.0 1.9
Run Code Online (Sandbox Code Playgroud)
为什么"值"和"10%"会自动由点组合?如何避免这种情况,因为我只想将其命名为"价值"?
好吧,我的一个项目中有一些相当奇怪的行为,我希望有人可以告诉我原因.我的文件结构如下所示:
MainApp.py
res/
__init__.py
elements/
__init__.py
MainFrame.py
Run Code Online (Sandbox Code Playgroud)
在MainFrame.py中,我定义了一个名为RPMWindow的类,它扩展了wx.Frame.
在MainApp.py中,这有效:
from res.elements.MainFrame import *
Run Code Online (Sandbox Code Playgroud)
而这不是:
from res.elements.MainFrame import RPMWindow
Run Code Online (Sandbox Code Playgroud)
我意识到外卡导入不会伤害任何东西,但我更感兴趣的是理解为什么命名导入在外卡成功时失败.
使用类名时,我得到了这个回溯:
Traceback (most recent call last):
File "C:\myApps\eclipse\plugins\org.python.pydev.debug_1.5.6.2010033101\pysrc\pydevd.py", line 953, in <module>
debugger.run(setup['file'], None, None)
File "C:\myApps\eclipse\plugins\org.python.pydev.debug_1.5.6.2010033101\pysrc\pydevd.py", line 780, in run
execfile(file, globals, locals) #execute the script
File "C:\Documents and Settings\Daniel\workspace\RPM UI - V2\src\MainApp.py", line 2, in <module>
from res.elements.MainFrame import RPMWindow
File "C:\Documents and Settings\Daniel\workspace\RPM UI - V2\src\res\elements\MainFrame.py", line 2, in <module>
from res.elements.MenuBar import MenuBarBuilder
File "C:\Documents and Settings\Daniel\workspace\RPM …Run Code Online (Sandbox Code Playgroud) 我是新手使用nginx,嗯,新的使用任何不是cpanel的东西......当你包含www时,我在使用nginx工作时遇到问题.在网址中.
www.mydomain.com > not work 404
mydomain.com > works
Run Code Online (Sandbox Code Playgroud)
我不确定我是否在命名配置文件或nginx的服务器配置上犯了错误.我有点匆匆学习,如果我在基本配置上犯了一些错误,我不会感到惊讶.我运行最新的nginx和php-fpm,除了我的域名问题,它还可以运行.
我(尝试?)运行子域名,他们工作,但使用www.将导致404.我使用来自我的主.org服务器域的名称服务器等.我将在下面发布所有相关内容,希望有人可以发现我正在制作/或制作的错误.
etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
184.xxx.xxx.146 server.servername.org servername.org
Run Code Online (Sandbox Code Playgroud)
named.conf中
...
view "localhost_resolver" {
/* This view sets up named to be a localhost resolver ( caching only nameserver ).
* If all you want is a caching-only nameserver, then you need only define this view:
*/
# match-clients …Run Code Online (Sandbox Code Playgroud) 有没有办法为数据框中的特定列分配值?例如,
dat2 = data.frame(c1 = 101:149, VAR1 = 151:200)
j = "dat2[,"VAR1"]" ## or, j = "dat2[,2]"
assign(j,1:50)
Run Code Online (Sandbox Code Playgroud)
上述方法不起作用.这也不是:
j = "dat2"
assign(get(j)[,"VAR1"],1:50)
Run Code Online (Sandbox Code Playgroud) 我想创建一个嵌套列表,例如,
> L <- NULL
> L$a$b <- 1
> L
$a
$a$b
[1] 1
Run Code Online (Sandbox Code Playgroud)
因为我需要在循环中进行赋值,所以我必须使用括号而不是美元,例如,
> L <- NULL
> a <- "a"
> b <- "b"
> L[[a]][[b]] <- 1
> L
a
1
> b <- "b1"
> L[[a]][[b]] <- 1
Error in L[[a]][[b]] <- 1 :
more elements supplied than there are to replace
Run Code Online (Sandbox Code Playgroud)
这超出了我的预期:L成为命名向量而不是嵌套列表.但是,如果指定的值是长度超过1的向量,则问题将消失,
> L <- NULL
> L[[a]][[b]] <- 1:2
> L
$a
$a$b
[1] 1 2
> b <- "b1"
> L[[a]][[b]] …Run Code Online (Sandbox Code Playgroud) 我需要帮助将我的子程序中的"状态代码"返回给父程序,在那里它将检查状态代码,打印代码并退出父程序.这是一个类项目,所以我会在这里放一些相关的代码,但我不会出于显而易见的原因发布整个项目.
我已经通过exec分叉并创建了子进程.父进行一些奇特的数学运算并使用命名管道将数据推送到子进程.孩子做了一些更奇特的数学.当我使用关键字时,孩子需要返回它在结束时将花式数学返回到父级的次数,其中父级将看到这一点,打印出返回的数字,然后退出父级.
int status;
pid_t child_id;
child_id = fork();
if (child_id == 0)
{
// put child code here
exec(opens second process);
}
if (child_id < 0)
{
perror("fork failed\n");
exit(EXIT_FAILURE);
}
while(child_id != 0)
{
//parent process
//do fancy math stuff here
// pipe
//open pipe
//converted math to "string" to pass to other program
// use fprintf to send data to other program
fprintf(fp,"%s",str);
//close pipe
//**************************************************
//this block doesn't work, always returns 0
if (WIFEXITED(status)){
int returned …Run Code Online (Sandbox Code Playgroud) 我声明了以下新类型:
newtype Code = Code String deriving (Show)
newtype Name = Name String deriving (Show)
newtype Account = Account (Code, Name) deriving (Show)
Run Code Online (Sandbox Code Playgroud)
所以:
*Main Lib> :t Code
Code :: String -> Code
*Main Lib> :t Name
Name :: String -> Name
*Main Lib> :t Account
Account :: (Code, Name) -> Account
Run Code Online (Sandbox Code Playgroud)
然后我创建了一些实例:
cn = Code "1.1.1"
nn = Name "Land And Buildings"
an = Account (cn, nn)
*Main Lib> an
Account (Code "1.1.1",Name "Land And Buildings")
Run Code Online (Sandbox Code Playgroud)
现在我需要访问Code变量中的字段 …
我想定义一个 typedef 来表示带有命名字段的 Dart 记录,但不确定语法是什么。
下面的代码显示了如何定义Command表示具有两个位置字段的记录的 typedef:
/// A record holding:
/// * the name of an executable,
/// * the list of arguments.
typedef Command =(
String executable,
List<String> arguments,
);
extension Compose on Command {
/// Joins the executable and the arguments.
String get cmd => '${this.$1} ${this.$2.join(' ')}';
}
Run Code Online (Sandbox Code Playgroud)