小编Pla*_*rth的帖子

无法理解Rust模块系统

我创建了一个用于教育目的的简单项目,因此我有一个主要功能和3个特征Battery,Display以及GSM它们的实现.我希望main函数位于文件main.rs中,而另一个文件名为phone.rs中的3个特征:

phone.rs

mod phone{
    pub struct Battery{
        model : String,
        hours_idle : i16,
        hours_talk : i16
    }

    pub struct Display{
        size : i16,
        number_of_colors : i32
    }

    pub struct GSM{
        model : String,
        manufactor : String,
        price : f32,
        owner : String,
        battery: Battery,
        display : Display
    }

     impl Battery {
        pub fn new(model : String, hours_idle : i16, hours_talk : i16) -> Battery{
            Battery {model : model, hours_idle : hours_idle ,hours_talk : hours_talk} …
Run Code Online (Sandbox Code Playgroud)

module traits rust

3
推荐指数
1
解决办法
304
查看次数

错误:无法移出自助领域的借用内容

这是我的代码:

struct Node<T> {
    data: T,
    next: Option<Box<Node<T>>>,
}

impl<T> Node<T> {
    fn new(data : T) -> Node<T> {
        Node { data: data, next: None } 
    }
    fn new_with_next(data: T, next: Option<Box<Node<T>>>) -> Node<T> {
        Node { data: data, next: next }
    }
}


struct LinkedList<T> {
    head: Box<Node<T>>,
    size: u8,
}

impl<T> LinkedList<T> {
    fn new(data: T) -> LinkedList<T> {
        let new_node = Node::new(data);
        let head = Box::new(new_node);
        LinkedList { head: head, size: 1 }
    }
    fn insert(&mut self, …
Run Code Online (Sandbox Code Playgroud)

rust

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

不兼容的类型:java.lang.Object无法转换为T

这是我的代码:

package datastructures;

import java.util.Iterator;

public class Stack<T>{
    private class Node<T>{
        T data;
        Node next;
    }
    private int size;
    private Node head;
    private Node newNode(T data){
        Node new_node = new Node();
        new_node.data = data;
        new_node.next = null;
        return new_node;
    }
    public Stack(){
        size = 0;
        head = null;
    }

    public T pop() {
        if(head == null)
            return null;
        T ret_val = head.data; //Error here
        head = head.next;
        this.size--;
        return ret_val;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在pop方法中收到错误,这是错误:

Error: incompatible types : java.lang.Object cannot be …
Run Code Online (Sandbox Code Playgroud)

java generics stack

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

无法理解泛型如何工作

我有一个名为Linked_List(.ads)的包,下面是代码:

Generic
   type T is private;
package Linked_List is
   type List is tagged record
       Data : T;
   end record;
end Linked_List;
Run Code Online (Sandbox Code Playgroud)

这里是包中包含main函数(main.adb)的代码

with Ada.Text_IO; use Ada.Text_IO;
with Linked_List;
procedure Main is
  type ListOfIntegers is new Linked_List(T => Integer);
begin
   null;
end Main;
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

4:30 subtype mark required in this context 
found "Linked_List" declared at linked_list.ads:3
found "Linked_List" declared at linked_list.ads:3
4:41 incorrect constrain for this kind of type
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

ada gnat

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

标签 统计

rust ×2

ada ×1

generics ×1

gnat ×1

java ×1

module ×1

stack ×1

traits ×1