标签: base

为什么要将基类分配给派生类需要显式转换?但不要求做相反的事情

我有一个基类和一个派生类,如下所示

public class animal
{
    public string name { get; set; }
}

public class dog : animal
{
    public int age { get; set; }
    public string type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

用途:

animal a = new animal();

dog d = new dog();

a = d; //compiled

d = a; //Error:Cannot implicitly convert type 'animal' to 'dog'.

d = (dog)a; // compiled
Run Code Online (Sandbox Code Playgroud)

内部派生类可以分配给base但是需要进行反向显式转换?即使base和derived类都包含相同的成员,也会发现相同的结果.

c# types derived base variable-assignment

8
推荐指数
2
解决办法
1万
查看次数

用变量base在python中向上计数

我想知道如何在python中执行等效的range函数,但是能够指定基数.例如:

countUp(start=0, end=1010, base=2)
countUp(start=0, end=101, base=3)
countUp(start=0, end=22, base=4)
Run Code Online (Sandbox Code Playgroud)

基数2计数的示例输出:

[0, 1, 10, 11, 100, ...]
Run Code Online (Sandbox Code Playgroud)

是否有一个我缺少的功能呢?或者我该怎么做呢?

python base range

8
推荐指数
2
解决办法
1310
查看次数

如何将列表翻出来?

我有以下列表:

> list(c(3, 4, 5, 8), c(2, 6, 9, 10), c(1, 7))
[[1]]
[1] 3 4 5 8

[[2]]
[1]  2  6  9 10

[[3]]
[1] 1 7
Run Code Online (Sandbox Code Playgroud)

所以我们可以说3属于组1,6属于组2,7属于组3,依此类推.我需要一个反向映射,即对于我希望拥有它所属的组ID的每个数字(参见预期输出):

> list(3, 2, 1, 1, 1, 2, 3, 1, 2, 2)
[[1]]
[1] 3

[[2]]
[1] 2

[[3]]
[1] 1

[[4]]
[1] 1

[[5]]
[1] 1

[[6]]
[1] 2

[[7]]
[1] 3

[[8]]
[1] 1

[[9]]
[1] 2

[[10]]
[1] 2
Run Code Online (Sandbox Code Playgroud)

我认为purrr::transpose应该做的工作,但它并不完全符合我的意图,是吗?怎么做到呢?

PS.最终,我只需要一个形式的矢量:3 2 1 1 1 2 …

r base purrr

8
推荐指数
1
解决办法
320
查看次数

Phonegap:如何在Android,iOS和浏览器上使用绝对路径?

我正在尝试使用相同的来源为Android和iOS开发Phonegap.

我想使用绝对路径,如:

background-image: url(/graphics/test.png);

但这不适用于Android或iOS.

我发现对于Android我必须使用类似的东西:

background-image: url(file:///android_asset/www/graphics/test.png);

但是当然这在浏览器(用于测试应用程序)和iOS上都没有意义.

问题是我正在使用一直使用绝对路径的框架.

我尝试设置BASE标签,但无法让它工作......

有没有办法在所有平台上使用相同的绝对路径?

base absolute-path cordova

7
推荐指数
1
解决办法
1699
查看次数

DBIx和Perl中的继承

我目前正在尝试使用DBIx实现以下方案:

产品包含"一般产品"和"捆绑产品"(捆绑产品是一般产品的集合):

package Product;
use base 'DBIx::Class::Core';
__PACKAGE__->table("products");
__PACKAGE__->add_columns(
  "productId",
  { data_type => "varchar", is_nullable => 0, size => 10},
  "name",
  { data_type => "varchar", is_nullable => 1, size => 150},
  "type",
  {
     data_type => "enum",
     default_value => "general",
     extra => {
       list => ["general", "bundle"],
     },
     is_nullable => 0,
  });
Run Code Online (Sandbox Code Playgroud)

如您所见,产品是一般产品,或捆绑产品保存在色谱柱类型中.

现在我想将这些信息封装在类标识中:我想要以下类:

  • 产品(type无所谓)
  • BundleProduct(type='bundle')
  • GeneralProduct(type='general')

我写:

package BundleProduct;
use base 'Product';

__PACKAGE__->resultset_attributes({ where => { …
Run Code Online (Sandbox Code Playgroud)

perl inheritance base isa dbix-class

7
推荐指数
1
解决办法
523
查看次数

R:应用中的rownames,colnames,dimnames和names

我想使用apply来遍历矩阵的行,我想在我的函数中使用当前行的rowname.看来你不能使用rownames,colnames,dimnamesnames直接在函数内部.我知道我可能会根据此问题中的信息创建一个解决方法.

但我的问题是如何apply在它的第一个参数中处理数组的行名和列名,以及在函数内部创建的对象的名称赋值apply?它看起来有点不一致,我希望通过以下示例来展示.有没有理由为它设计这样的?

# Toy data
m <- matrix( runif(9) , nrow = 3 )
rownames(m) <- LETTERS[1:3]
colnames(m) <- letters[1:3]
m
          a         b           c
A 0.5092062 0.3786139 0.120436569
B 0.7563015 0.7127949 0.003358308
C 0.8794197 0.3059068 0.985197273

# These return NULL
apply( m , 1 , FUN = function(x){ rownames(x) } )
NULL
apply( m , 1 , FUN = function(x){ colnames(x) } )
NULL
apply( m …
Run Code Online (Sandbox Code Playgroud)

r function base apply

7
推荐指数
1
解决办法
6291
查看次数

什么是base..ctor(); 在C#?

我正在拆解一些C#应用程序,我正在尝试重构源代码.我正在拆卸应用程序以及所需的DLL.
我一直遇到这条线base..ctor();,这给了我一个错误.该生产线在一些空洞出现在一些子类StreamException.

有谁知道代码应该是什么?我在想,反汇编程序搞砸了一些如何,它显然是无效的代码.那么有谁知道这意味着什么以及我如何改变这条线以便它起作用?

以下是行中出现的子类之一的代码:

[Guid("ebc25cf6-9120-4283-b972-0e5520d0000E")]
public class ZlibException : Exception
{
    public ZlibException()
    {
        base..ctor();
        return;
    }

    public ZlibException(string s)
    {
        base..ctor();
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# base

7
推荐指数
2
解决办法
9317
查看次数

为什么我可以从派生类调用基本模板类方法

我决定测试"Effective C++"中的一个例子,但我没有得到我预期的结果.所以,显然这个(简化的)代码不应该编译:

template <class T>
struct A {
    void f(){}
};

template <class T>
struct B : public A <T> {
    void f2() { f(); }   // calling base function - will not compile
};
Run Code Online (Sandbox Code Playgroud)

这是解释(为简单起见改变了类名):

上面的代码不会编译,至少不符合一致的编译器.这样的编译器会抱怨f不存在.我们可以看到它f在基类中,但编译器不会在那里寻找它.

我们需要了解原因.问题是当编译器遇到类模板的定义时B,他们不知道它从哪个类继承.当然,它是A<T>,但它T是一个模板参数,直到稍后(B实例化时)才会知道.不知道是什么T ,没有办法知道这个类是什么A<T>样的.特别是,没有办法知道它是否具有f功能.

我的编译器(Visual Studio)并不介意......它甚至没有显示任何警告.

以上代码是否正确?

c++ inheritance templates base

7
推荐指数
1
解决办法
3313
查看次数

使用除8,10和16以外的基数的ostream

我有一个多项式类,它的自然表示是它的系数.如果设置了系数,那么其a 1用于二项式,1或2用于三项式等.例如,在二项式的基础上,X 2 + 1表示为101; 在三项式的基础上,2X 2 + 1表示为201.

该类提供了一个operator<<过载.在内部,该类使用整数数组表示系数.所以我应该能够执行:

ostringstream oss;
for (size_t i=0; i<v.size(); i++)
   oss << v[i];
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我不知道如何配置比8,10和16等基地ostream的ios_base提供std::oct,std::dec以及std::hex流行的基地,但我没有看到需要使用什么不常用的基地.而像ios_base上的C++ Reference这样的页面并没有讨论要使用的内容.

如何使用8,10和16以外的基数的ostream?

c++ base ostream

7
推荐指数
1
解决办法
95
查看次数

你如何在 JavaScript 中以 10 以外的基数取整一个数字?

例如,假设我有一个12.24以 8 为基数(10.3125以 10 为基数)的数字,我想将该数字四舍五入到 1 个精度点,以便得到12.3.

javascript base rounding

7
推荐指数
1
解决办法
173
查看次数