我是Haskell的新手,并且正在尝试使用实例创建一个类.
我有以下代码,我试图说:1)分支可以在其第一个位置保持任何类型,2)创建一个类线性,它取线性的东西,并返回一个数字3)使分支成为线性的实例,如果分支持有的第一件事是Num类的一部分.
data Branch a = Branch a Integer deriving (Show, Eq)
class Linear l where
length :: (Num a) => l -> a
instance (Num a) => Linear (Branch a) where
length (Branch len _) = len
Run Code Online (Sandbox Code Playgroud)
我得到错误:无法推断(a~a1)来自实例声明绑定的上下文(Num a).....
有谁知道如何在Haskell中表达我想说的是什么?
我是c#和.net编程的初学者,我想知道我是否可以使用Mozilla Firefox作为webBrowser控件的实例浏览器,因为默认情况下webBrowser控件使用Internet Explorer.
对于我的应用程序,我想要有一些相同视图控制器的不同实例.现在,我只是创建一个这样的新实例:
iSafeViewController *tab = [[iSafeViewController alloc] init];
[tab setModalPresentationStyle:UIModalPresentationFullScreen];
[tab setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentViewController:tab animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
大.既然这是在iSafeViewController类中完成的,我还有另一个按钮,它当前只是关闭堆栈中的最新控制器.
- (IBAction)closeTab:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
但是,我真的希望能够回到这些实例.所以,我有两个问题.
并dismissViewControllerAnimated从内存中删除该控制器的实例.如果没有,有没有办法可以重新呈现它.
那么可能有更好的方法来浏览viewController实例presentViewControllerAnimated.至少,是否有更好的方法来创建一个viewController的新实例,并能够导航到每个实例,希望不在堆栈中.换句话说,如果有三个viewController实例,有没有办法可以从第三个实例转到主实例?
任何想法,将不胜感激.谢谢.
这个问题确实必须相当简单,但我不能google或duckduck答案,可能是因为99%的初学者教程涉及Person使用name属性创建一个对象(与constructor.name无关但污染了搜索结果).
的实例Object对象可以使用instance.constructor.name来检测:
var foo = new Object;
foo.constructor.name; // "Object"
Run Code Online (Sandbox Code Playgroud)
如何在我自己的对象上设置构造函数名称?
var Bar = function(){};
var baz = new Bar;
baz.constructor.name // "" <- Empty string
Run Code Online (Sandbox Code Playgroud) 仍然试图了解C#(主要与C合作).我有一个类"设备",并希望创建该类的实例,但也想全局访问实例,因为我在我的GUI方法中使用它们太多了.
public class Device
{
public string Name;
public List<string> models = new List<string>();
public List<string> revisions = new List<string>();
...
}
Run Code Online (Sandbox Code Playgroud)
以某种方式在全球宣布:
Device Device1 = new Device();
Device1.Name = "Device1";
Run Code Online (Sandbox Code Playgroud)
然后在WPF方法中访问它:
private void DeviceViewItem_Selected(object sender, RoutedEventArgs e)
{
TreeViewItem selected = (TreeViewItem)sender;
if (selected.Name == Device1.Name)
{
Device1.Models.Add("something");
Device1.Revisions.Add("something");
}
Run Code Online (Sandbox Code Playgroud)
我一直在阅读关于单例模式,但看起来你必须创建一个单例类,但我的"设备"类被多次使用来创建许多设备.也许我只是不明白这种模式.
我在xcode中创建了一个自定义类:PaperPack并定义了2个即时变量:title和author-
然后我分配2个类的实例,如下所示:
PaperPack *pack1 = [[PaperPack alloc] init];
pack1.title = @"Title 1";
pack1.author = @"Author";
PaperPack *pack2 = [[PaperPack alloc] init];
pack1.title = @"Title 2";
pack1.author = @"Author";
Run Code Online (Sandbox Code Playgroud)
那么我如何计算和返回我用该类创建的实例数?
我想调试我的项目,我发现创建类的实例有一个小问题.我试着用简单的例子来描述它.
//this is saved in file Engine.ts
module Car {
export class Engine {
name: string;
constructor(name: string) {
this.name = name;
}
getName(): string{
return this.name;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个类用他的名字描述了简单的引擎.现在我想在某些车辆中创建引擎:
///<reference path="Engine.ts"/>
//this is saved in file app.ts
module Car {
export class Vehicle {
name: string;
constructor(name: string) {
this.name = name;
}
buildCar() : string {
var engine = new Engine("Volkswagen 1.9TDI");
return "Name of the vehicle is " + this.name + " and has engine " …Run Code Online (Sandbox Code Playgroud) 我必须在C++中定义一个函数,它生成一个类Foo的向量并返回它.
我可以用不同的方式定义它,它们都是完全相同的:
C样式参数传递:
void generateFooVector(vector<Foo> * result)
{
for (int i = 0; i < 100; i++)
{
Foo f = Foo();
result->push_back(f);
}
}
int main()
{
vector<Foo> result;
generateFooVector(&result);
}
Run Code Online (Sandbox Code Playgroud)
参考传球:
void generateFooVector(vector<Foo> & result)
{
for (int i = 0; i < 100; i++)
{
Foo f = Foo();
result->push_back(f);
}
}
int main()
{
vector<Foo> result;
generateFooVector(result);
}
Run Code Online (Sandbox Code Playgroud)
实例化向量并返回指针:
vector<Foo> * generateFooVector()
{
vector<Foo> * result = new vector<Foo>();
for (int i = 0; i < …Run Code Online (Sandbox Code Playgroud) 我有一个主类"m"和2个内部类叫做sub1,sub2,其中sub2是静态类:
public class m
{
String n="n";
static String s="s";
public class sub1
{
public void fn(){System.out.println(n);}
//static public void fs(){System.out.println(s);}
}
static class sub2
{
//public void fn(){System.out.println(n);}
static public void fs(){System.out.println(s);}
}
public void f()
{
sub1 s1=new sub1();//OK, no error
sub2 s2=new sub2();//OK
}
public static void main(String[] args)
{
m obj=new m();
sub1 s1=new sub1();//Error
s1.fn();
//s1.fs();
sub2 s2=new sub2();//OK
//s2.fn();
s2.fs();
}
}
Run Code Online (Sandbox Code Playgroud)
我使用Openjdk在linux下编译它,它报告错误
$ java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~16.04.1-b14) …Run Code Online (Sandbox Code Playgroud) 我需要一个函数来在java中创建动态给定类的实例.
我找到了很多样本但是在所有样本中,要实例化的类在运行时之前就已知.
有用户定义的类:
class Student { //some code }
class Teacher { //some code }
class Course { //some code }
Run Code Online (Sandbox Code Playgroud)
我需要的是
List<class> MyFunction(<class>) {
List<class> items = new ArrayList<class>();
for(int i = 0; i < 5; i++) {
create_a_new_class_instance;
items.add(new_created_instance);
}
return items;
}
Run Code Online (Sandbox Code Playgroud)
我将如何使用
List<Student> students = MyFunction(Student);
List<Teacher> teachers = MyFunction(Teacher);
List<Course> courses = MyFunction(Course);
Run Code Online (Sandbox Code Playgroud)
希望有人帮忙.
这是我在Stackoverflow中的第一个问题,对由此带来的任何不便表示歉意.
Utku
instance ×10
class ×4
c# ×2
java ×2
objective-c ×2
.net ×1
c++ ×1
cocoa-touch ×1
constructor ×1
counter ×1
dynamic ×1
firefox ×1
function ×1
haskell ×1
instanceof ×1
ios ×1
javascript ×1
object ×1
oop ×1
singleton ×1
typeclass ×1
types ×1
typescript ×1
vector ×1
wpf ×1